В Java есть доступ к параметрам по порядку при передаче в метод? - PullRequest
2 голосов
/ 18 июля 2011

Это важно, потому что я создаю объект из десериализованных примитивов в методе readObject. Так что, если я пишу

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

Будет ли десериализация в правильном порядке, в порядке, в котором они были записаны в поток байтов?

Ответы [ 4 ]

3 голосов
/ 18 июля 2011

В Java выражения всегда оцениваются слева направо.Таким образом, результат первого вызова readDouble станет первым аргументом для конструктора Object (но, пожалуйста, не называйте ваш класс Object!, Который сталкивается с java.lang.Object), и т. Д.

3 голосов
/ 18 июля 2011

Да параметры будут оцениваться по порядку.

1 голос
/ 18 июля 2011

Да, они будут десериализованы в правильном порядке.

Возможно, вы захотите создать (хорошие) именованные переменные из этих s.readDouble() значений, хотя более понятно, что они означают.

1 голос
/ 18 июля 2011

Списки аргументов Java оцениваются слева направо

...