2011-07-18 4 views
2

이것은, readObject 메소드 내에서 직렬화 복원 된 원시 형 오브젝트로부터 오브젝트를 생성하고 있기 때문에 중요합니다. 그래서 만약 내가, Java에서 매개 변수는 메소드에 전달 될 때 순서대로 액세스됩니까?

ObjectInputStream s; //From the readObject method 
Object obj = new Object(s.readDouble(),s.readDouble(), s.readDouble()) 

가 올바른 순서로 역 직렬화 것이다 그들이 바이트 스트림에 기록 된 순서를 쓰고 있어요?

답변

1

평가됩니다.

s.readDouble() 값 중에서 (좋은) 명명 된 변수를 만들 수도 있지만, 그 의미가 분명합니다.

3

예 매개 변수는 순서대로 평가됩니다.

3

Java에서 표현식은 항상 왼쪽에서 오른쪽으로 평가됩니다. 따라서 첫 번째 readDouble 호출의 결과는 Object 생성자에 대한 첫 번째 인수가됩니다 (그러나 !과 충돌하는 클래스 이름을 java.lang.Object과 충돌시키는 등).

+0

고마워요! 네, 방금 임의의 객체를 구성한다는 것을 보여주기 위해 이름을 만들었습니다. – Telgar

1

자바 인수 목록 예, 그들이 올바른 순서로 직렬화합니다 왼쪽에서 오른쪽

관련 문제