本帖最后由 SakuranaRanbom 于 2022-12-11 17:09 编辑
如题,我想把Loc写入yaml里。```
public class Loc implements ConfigurationSerializable {
public String name;
public String world;
public double x;
public double y;
public double z;
public Loc( String n,String w, double ix, double iy, double iz) {
name = n;
world = w;
x = ix;
y = iy;
z = iz;
}
@Override
public Map<String, Object> serialize() {
Map<String, Object> map = new HashMap<String, Object>();
map.put("name", name);
map.put("world", world);
map.put("x", x);
map.put("y", y);
map.put("z", z);
return map;
}
}
```
但是效果是
```
locations:
lol1:
==: cn.mcpe0.ContinueTeleportMain.Loc
world: world
name: lol1
x: 107.84532392488167
y: 70.0
z: 226.3726157949549
```
如题,我想把Loc写入yaml里。```
public class Loc implements ConfigurationSerializable {
public String name;
public String world;
public double x;
public double y;
public double z;
public Loc( String n,String w, double ix, double iy, double iz) {
name = n;
world = w;
x = ix;
y = iy;
z = iz;
}
@Override
public Map<String, Object> serialize() {
Map<String, Object> map = new HashMap<String, Object>();
map.put("name", name);
map.put("world", world);
map.put("x", x);
map.put("y", y);
map.put("z", z);
return map;
}
}
```
但是效果是
```
locations:
lol1:
==: cn.mcpe0.ContinueTeleportMain.Loc
world: world
name: lol1
x: 107.84532392488167
y: 70.0
z: 226.3726157949549
```
这是bukkit的序列化策略决定的,bukkit需要识别你这个配置是什么类型才能帮你序列化/反序列化对象
你可以通过 ConfigurationSerialization.registerClass(Class,alias)方法在注册类时指定一个别名来代替包名
但是 ==: 的形式无法改变,除非你自行对配置内容进行序列化/反序列化(不使用ConfigurationSerializable接口)
你可以通过 ConfigurationSerialization.registerClass(Class,alias)方法在注册类时指定一个别名来代替包名
但是 ==: 的形式无法改变,除非你自行对配置内容进行序列化/反序列化(不使用ConfigurationSerializable接口)
本帖最后由 SakuranaRanbom 于 2022-12-11 19:08 编辑
是您所说的这样。我在查阅资料时候也看到了https://www.spigotmc.org/wiki/in ... lization-section-2/
但是我在alias里面写别名后YAML里面的==:后面的内容并不会变,仍旧是 包名.类名。
但这个不影响主要功能。我还有一个关于yaml读数组的问题,可以麻烦您再看一看吗
问题网址如下
https://www.mcbbs.net/thread-1404199-1-1.html
结冰的离季 发表于 2022-12-11 17:15
这是bukkit的序列化策略决定的,bukkit需要识别你这个配置是什么类型才能帮你序列化/反序列化对象
你可以通 ...
是您所说的这样。我在查阅资料时候也看到了https://www.spigotmc.org/wiki/in ... lization-section-2/
但是我在alias里面写别名后YAML里面的==:后面的内容并不会变,仍旧是 包名.类名。
但这个不影响主要功能。我还有一个关于yaml读数组的问题,可以麻烦您再看一看吗
问题网址如下
https://www.mcbbs.net/thread-1404199-1-1.html