2013-10-07 3 views
1

У меня возникают проблемы с пониманием этого комментария от Java serialization documentation:Классы массивов с serialVersionUID?

массива классы не могут объявить явный serialVersionUID, поэтому они всегда имеют значение по умолчанию вычисляется, но требование для согласования serialVersionUID значений отклоняют для классов массива.

Возможно, я не могу понять очевидное, однако, я не понял, зачем мне это нужно?

ответ

2

Я думаю, что ответ на ваш вопрос должен быть прочитан на serialVersionUID. В частности, вы часто хотите указать это на своих классах, чтобы иметь возможность справляться с тем, что классы меняются со временем.

Комментарий, который вы имеете в виду, говорит о том, что вы не можете установить serialVersionUID на массивы. Если это было так, и serialVersionUID всегда нужно было сопоставлять, тогда ваш массив имел бы серьезные проблемы и был бы очень хрупким в отношении сериализации. Чтобы противостоять этому, разработчики языка решили, что сериализация массива (de) игнорирует serialVersionUID, тем самым устраняя проблему, которую он не может определить.

+0

спасибо. Итак, вы говорите, что классы, состоящие из переменных массива, не имеют serialVersionUID? Я использовал массивы int [] и объект [] вместе с serialVersionUID в разных классах для связи по объектам на основе сокетов и массивов, которые всегда возникали в сети. Может быть, я не могу четко понять вашу точку зрения. Можно ли вставить образец кода? Буду весьма признателен за это. – Ashley

+0

@ Ашли, не совсем. Класс, содержащий массив, может иметь serialVersionUID, однако сам массив не может. –

+0

Еще раз спасибо. Итак, это собственно массив. Я думаю, что термин «классы массива» немного запутан. Спасибо, что поняли это. – Ashley

0

Я не понял, зачем мне это нужно.

У вас нет. Вы не можете. Синтаксиса для определения классов массивов не существует, не говоря уже о его членах serialVersionUID.

Вот почему проверка была бы совершенно бессмысленной. В классе нет ничего, что могло бы измениться.

Смежные вопросы