小钢炮君
本帖最后由 tdiant 于 2023-3-28 13:41 编辑

就是如果我设计一个类Aclass  并实现ConfigurationSerializable接口
Aclass的成员有一个类Bclass的实例 Bclass 也实现ConfigurationSerializable接口
并且如果B的成员变量拥有一个List<ItemStack>
那么A和B的serialize和deserialize应该怎么去写呢?


GhostSkyV9
你也可以借助第三方工具:Gson
Gson有个fromJson跟toJson一个序列化一个反序列化

二白丶
没太看明白问题到底是什么意思
如果只是想实现对物品的序列化和反序列化的话
这个教程里的 数据处理 里或许有你想要的:
https://www.mcbbs.net/thread-1213792-1-1.html

小钢炮君
二白丶 发表于 2023-3-22 20:06
没太看明白问题到底是什么意思
如果只是想实现对物品的序列化和反序列化的话
这个教程里的 数据处理 里或许 ...

  1. public class Aclass{
  2.         public Bclass b;
  3.        
  4. }
  5. public class Bclass{
  6.         List<ItemStack> items;
  7. }
复制代码

就是这么一个类Aclass 的序列化

二白丶
小钢炮君 发表于 2023-3-22 22:22
就是这么一个类Aclass 的序列化

那就是教程里 数据处理的内容,
你可以把列表里每个物品遍历出来然后挨个反序列化它们
类似
for(item:items) {
//反序列化,在那个教程里有写
}



结冰的离季
本帖最后由 结冰的离季 于 2023-3-22 22:37 编辑

正常写。ItemStack 已实现 ConfigurationSerializable
bukkit yml 的反序列化器会自动处理 实现了 ConfigurationSerializable 的类,你可以随便嵌套
在你B类的自定义序列化方法里直接 config.set("items",items);就行
反序列化也一样 config.getList("items") 然后强转


第一页 上一页 下一页 最后一页