gpt4 book ai didi

java - SnakeYaml错误: No writable property on class

转载 作者:行者123 更新时间:2023-12-02 11:43:09 26 4
gpt4 key购买 nike

我犯了一个愚蠢的错误?我是 yaml 新手。不知道为什么,但我的系统看不到我的名为“name”的变量。

Full error

错误:

cannot create property=name for JavaBean=x.ModuleDescription@7ce6a65d

我的类(class):

@Data
@NoArgsConstructor
@AllArgsConstructor
public class ModuleDescription {

private String name;
private String main;

private String version = "unknown";
private String author = "unknown";

@Setter
private File file = null;
}

我可以看到该字段,但我的系统看不到。希望有人有想法。谢谢!

最佳答案

那么,您将字段 name 声明为 private,这将禁止其他任何人访问该字段。默认情况下,SnakeYAML 仅加载公共(public)字段和属性,即具有公共(public) getter 和 setter 的值。

因此,一个简单的修复方法就是为类添加 name 的公共(public) getter 和 setter:

public String getName() {
return name;
}
public void setName(final String value) {
name = value;
}

为了加载,你需要setter;对于倾倒,你需要 setter/getter 。或者,您可以声明字段 public

如果您真的想要保持字段私有(private)并且添加任何公共(public)getter/setter,这也可以工作(未经测试):

Yaml yaml = new Yaml();
yaml.setBeanAccess(BeanAccess.FIELD);
ModuleDescription desc = yaml.loadAs(/* YAML source here */,
ModuleDescription.class);

关于java - SnakeYaml错误: No writable property on class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48387274/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com