我在 libGDX 中工作,对我自己的类进行序列化。
问题如下:当反实现Json为一个类型的对象Cooldown.class(它自己的类)时,会发生错误
Class cannot be created (missing no-arg constructor): com.badlogic.gdx.graphics.g2d.Animation
关键是我的班级Cooldown有一个 type 的变量Animation。该错误需要创建一个空的类构造函数Animation。同时,我不认为我怎么能把它放进去Animation(只读文件)。
您的 Cooldown 类是否继承了Serializable接口?
这个接口有两种方法用于从 JSON 读取对象和写入对象。如果一个对象实现了这个接口,那么 Json 类将使用它们进行序列化。
否则,将使用反射,libGdx 将尝试序列化对象的所有字段,包括动画。为了防止这种情况,在一个空的构造函数中初始化动画,并在它的字段前面加上瞬态关键字(告诉序列化器这个字段不需要序列化)。
或者,再次在 Cooldown 中实现 Serialiable,并编写自己的序列化算法(对我来说更容易)。