Чтобы избежать NotSerializableException, убедитесь, что:
. Кроме того, вам также необходимо определить serialVersionUID для каждого класса Serializable. Проверьте все 3 случая выше плюс:
Примечание. Иногда ваш код может работать без serialVersionUID, но читает последний абзац в javadoc Serializable, чтобы понять, почему это будет проблемой в зависимости от среды.
Имеется виртуальная машина возможность добавления сведений об исключении. Он показывает, что корневые и вложенные классы не могут сериализоваться:
-Dsun.io.serialization.extendedDebugInfo=true
См. Описание ApprovedStates Enumeration
в Документах Microsoft:
... Указывает, одобрено или отклонено обновление. Эти флаги могут быть использованы для получения обновлений в указанном состоянии. ...
blockquote>Члены этого перечисления перечислены ниже:
Любой - включает все обновления, независимо от того, утверждены они, отклонены или не утверждены.
Отклонено - Включает обновления, которые были отклонены.
HasStaleUpdateApprovals - Включает в себя обновления, имеющие одобрение на редакцию, которая не является последней редакцией.
LatestRevisionApproved - Включает в себя обновления, последняя версия которых утверждена.
NotApproved - Включает обновления, которые не были утверждены или отклонены.
blockquote>
Теперь вопрос о том, почему замененные обновления все еще отражаются после этого условия, заключается в том, что они не должны проверять поведение замены. Они используются для проверки состояния утверждения (утверждено, отклонено, не утверждено). Последняя редакция - это когда Microsoft продолжает обновлять / пересматривать обновление после его первоначального выпуска.
Если вы хотите определить поведение замены,
$updateinfo.IsSuperseded
- это вариант, на который можно положиться.