我对序列化没有太多经验。在尝试序列化下面类的简单对象时,我No JavaBean properties found exception
从 YAML 库中得到了这个。
这是课程:
public class MyClass {
String value;
public MyClass(String args) {
value = args;
}
public String getValue(){
return value;
}
}
以下是我使用 SnakeYAMAL 进行序列化的方式:
import java.util.HashMap;
import java.util.Map;
import org.yaml.snakeyaml.Yaml;
public class Test {
public static void main(String[] args) {
MyClass obj = new MyClass("this is my data");
Map<String, Object> data = new HashMap<String, Object>();
data.put("MyClass", obj);
Yaml yaml = new Yaml();
String output = yaml.dump(data);
System.out.println(output);
}
}
并在执行时引发此异常:
Exception in thread "main" org.yaml.snakeyaml.error.YAMLException: No JavaBean properties found in MyClass
at org.yaml.snakeyaml.introspector.PropertyUtils.getProperties(PropertyUtils.java:112) ...
你能告诉我这样做我缺少什么,或者我应该如何正确地做到这一点?
编辑:
public class MyClass {
String value;
public MyClass() {}
public String setValue(String value){
this.value = value;
}
public String getValue(){
return value;
}
}
如果我在序列化它之前设置值,它会以某种方式工作。您认为这是正确的解决方案还是不推荐的方法?