在java中动态创建对象
假设我有这个班:在java中动态创建对象,java,Java,假设我有这个班: public class Person { private String name; private int age; //setters and getters ... } 下面的代码不正确,但我需要类似的代码 String className="Person"; String att1 = "name"; String att2 = "age; object o = createClassByName(className); setValu
public class Person {
private String name;
private int age;
//setters and getters
...
}
String className="Person";
String att1 = "name";
String att2 = "age;
object o = createClassByName(className);
setValueForAttribute(o,att1,"jack");
setValueForAttribute(o,att2,21);"
你熟悉散列吗? 我认为您可以使用HashMap,它是Java库中内置的一种常见哈希实现:
HashMap<String,Object> person1 = new HashMap<String,Object>();
person1.put("className", "Person");
person1.put("name", "Jack");
person1.put("age", 21);
HashMap person1=newhashmap();
person1.put(“className”、“Person”);
人1.把(“姓名”、“杰克”);
person1.put(“年龄”,21岁);
每次要更改值时,请执行以下操作:person1.put(“name”、“Jill”)
要获取这些值,它是person1.get(“name”)
如果你想考虑类,你必须得到类名
,并在你的代码中手动比较它,根据对象的“类”做不同的事情(实际上是一个HashMap,但不管怎样)
小提示:这样做被认为是非常混乱的;) 如果您使用的是Spring,PropertyAccessorFactory将帮助您轻松设置属性。至少添加一个构造函数,这样您就不必使用反射来设置私有字段。通过反射手动设置私有字段是如此“错误”。。。