У меня нет большого опыта с сериализацией. При попытке сериализовать простой объект класса ниже я получаю этот 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;
}
}
и если я устанавливаю значение перед его сериализацией, оно как-то работает. Как вы думаете, это правильное решение или не рекомендуемый подход?