- Почему serialVersionUID должен быть объявлен как статический, конечный и длинный переменный тип?
- Уникален ли этот serialVersionUID?
- Что происходит, когда два или более классов содержат один и тот же serialVersionUID? Как эта версия UID будет полезной в этом случае для десериализации массива байтов?
ответ
Это статичный, поскольку он относится к классу, а не к экземпляру.
Это окончательный вариант, потому что он не изменяется (для этой версии класса). Он изменяется только тогда, когда кто-то вносит изменения в класс, который влияет на его сериализацию.
Это длинный, потому что тип данных легко сериализуется, вписывается в компактное пространство и имеет гораздо больше значений, чем кому-либо, вероятно, потребуется.
Не обязательно быть уникальным. Если две версии класса имеют один и тот же serialversionUID, то есть нет изменений в классе, которые влияют на его сериализацию, эти две версии класса могут принимать одинаковый формат сериализации.
Не имеет значения, имеет ли два класса один и тот же serialVersionUID, он не используется между классами, он используется только для проверки совместимости сериализованной версии класса с этой версией класса.
Почему гораздо проще сериализовать?Почему это не int int или короткое что-то вроде этого? Можете ли вы мне помочь, зная это, пожалуйста ... –
@ user1391703: это входит в «потому что спецификация говорит так». также см. отличный ответ Эрика Липперта на http://meta.stackoverflow.com/questions/323334/is-asking-why-on-language-specifications-still-considered-as-primarily-opinio –
Что такое фигурные числа? Просто погуглил, чтобы знать о том же, но не мог понять. Пожалуйста, объясните мне об этом .. –
- Почему serialVersionUID должен быть объявлен как статический, окончательный и типа длинной?
Поскольку the specification так говорит.
- Действительно ли serialVersionUID должен быть уникальным?
Нет, это отличает только между разными версиями вашего класса (например, составленный в разные моменты времени). Если вы пишете новый класс, вы можете установить serialVersionUID = 1L;
без каких-либо проблем.
- Что происходит, когда два или более классов содержат один и тот же serialVersionUID? Как будет использоваться serialVersionUID в этом случае для десериализации массива байтов?
Два или более классов могут объявлять один и тот же serialVersionUID. Фактический формат проводов содержит полное имя класса, поэтому нет никакой двусмысленности.
Если serialVersionUID в загружаемых данных не соответствует идентификатору serialVersionUID вашего класса, будет выбрано значение InvalidClassException
.
- 1. serialversionuid является статическим и окончательным, но тогда почему сериализуемым
- 2. Почему SerialVersionUID является статическим
- 3. разница между окончательным статическим и статическим окончательным
- 4. Почему поле данных должны быть статическим и окончательным
- 5. Разница между окончательным статическим и статическим окончанием
- 6. Почему BindingAdapter должен быть статическим?
- 7. Почему список должен быть объявлен окончательным
- 8. обязательный класс должен быть окончательным?
- 9. Почему пользовательский класс исключений java должен быть окончательным
- 10. Почему ядро Java не может быть окончательным?
- 11. Почему атрибут ClassCleanup должен быть статическим?
- 12. Почему оператор удаления должен быть статическим?
- 13. ПЛАН EXPLAIN должен быть длинным
- 14. Разница между окончательным классом и статическим классом
- 15. Разница между конечным статическим int и статическим окончательным int?
- 16. Андроид Курсор в представлении должен быть окончательным?
- 17. Почему Serialversionuid длиннее в java?
- 18. java.lang.NoClassDefFoundError со статическим окончательным методом
- 19. Почему класс Java не может быть абстрактным и окончательным
- 20. serialVersionUID в Java
- 21. Должен RouteConfig.cs быть статическим классом
- 22. Класс обработчика должен быть статическим?
- 23. Должен ли внутренний класс быть статическим в Java?
- 24. Локальный журнал переменных, определенный в охватывающей области, должен быть окончательным или окончательным окончательным
- 25. Локальная переменная Java, доступная изнутри внутреннего класса; должен быть объявлен окончательным, почему он работает в NetBeans?
- 26. Сериализация serialversionuid в Java
- 27. Должен ли этот метод быть статическим?
- 28. Почему класс MDB не может быть окончательным
- 29. C++ - почему этот член должен быть объявлен статическим?
- 30. Почему первый метод, который должен быть вызван в Java, должен быть статическим, но в android это не так?
У вас есть 3 вопроса в одном. Пожалуйста, сосредоточьтесь на одном. Если первый, какие ответы вы ищете? Это должно быть статическое окончание и тип long [потому что спецификация говорит так] (http://stackoverflow.com/questions/285793/what-is-a-serialversionuid-and-why-should-i-use-it). – Tunaki