如果我有这样的课程:
class MyObject {
public int myInt;
public String myString;
}
是否可以在不实现转换代码的情况下将此类的实例转换为 HashMap?
MyObject obj = new MyObject();
obj.myInt = 1; obj.myString = "string";
HashMap<String, Object> hs = convert(obj);
hs.getInt("myInt"); // returns 1
hs.getString("myString"); // returns "string"
Java是否提供了这种解决方案,或者我需要自己实现 convert
?
我的班级有 50 多个字段,为每个字段编写转换器并不是一个好主意。
原文由 Mr.D 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用反射来实现此行为。您可以获得要转换的类的所有字段以映射迭代这些字段并将每个字段的名称作为映射的键。这将导致从字符串到对象的映射。