在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将帮助您轻松设置属性。至少添加一个构造函数,这样您就不必使用反射来设置私有字段。通过反射手动设置私有字段是如此“错误”。。。