我正在使用扩展Swing
对象类(例如public myClass extends JFrame
)的类以及引用Screen objects/DisplayMode/Graphics
的方法/变量。
没有问题。但是,当我尝试将Grphics
实例g
投射到Graphics2D
对象时,我已经得到了似乎是常见的 error as explained in multiple places of SE with great answers and information。
我很优雅!因为我设法在不添加serialVersionID或而没有实现可序列化接口的情况下解决了这个问题。如上所述,我不需要将我的班级序列化。由于它是在不必实现/扩展可序列化接口或添加serialVersionID的情况下解决的 - 我只是很想知道在什么情况下编译器决定或将类视为 / em>或更好被序列化......我不确定我还能解释这个。
我想知道的是,如何/在什么标准下 Java Compiler是否将类限定为可序列化并需要序列号?在我的情况下,我既不需要序列化,也没有指定序列化。
答案 0 :(得分:4)
class SerializableClass implements Serializable
您只需实现界面即可。 Java从不要求串行ID;如果你没有提供它在运行时确定的那个。
您还可以扩展可序列化的类:
class AnotherSerializableClass extends SerializableClass
Java将类分类为Serializable,如果它实现Serializable本身或扩展实现Serializable的类。
由于MyClass
扩展了JFrame
实现Serializable
,所以您的类是可序列化的。
答案 1 :(得分:1)
有两种情况。
(3)对所有基类重复。
请注意,这是IDE执行此操作,而不是Java编译器。这不是编译错误。