Java 动态创建类名为字符串的对象
我试图通过以字符串形式发送类名来动态创建类的对象。我已经在所有的java论坛上搜索过了,但是我没有得到我想要的答案。 这是我的要求, 我有一个名为Agent的类Java 动态创建类名为字符串的对象,java,Java,我试图通过以字符串形式发送类名来动态创建类的对象。我已经在所有的java论坛上搜索过了,但是我没有得到我想要的答案。 这是我的要求, 我有一个名为Agent的类 package somePack; public class Agent{ private String Id; Private String Name; public String getId() { return this.id; } public void setId(String id) {
package somePack;
public class Agent{
private String Id;
Private String Name;
public String getId() {
return this.id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
}
package somePack;
public class Employee{
private String Id;
Private String Name;
public String getId() {
return this.id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
}
public class create{
public static void main(String[] args){
newCreate("Employee");
newCreate("Agent");
}
public static void newCreate(String name){
String path="somePack."+name;
Class cls=Class.forName(path);
System.out.println("Class Name " + cls.getName());
}
}
现在我的问题是,cls.getName()给了我类名,但现在我想为该类创建对象,即分别为Employee类和Agent类创建对象,但是如何为它们创建对象呢?传递的字符串可能是来自另一个方法的其他内容,我如何为此类内容创建对象
有人能帮我吗
提前感谢您,使用
然后你就可以把它交给特工了
Agent agent = (Agent) Class.forName(path).newInstance();
但是现在我想为该类创建对象
然后,如果您不需要使用参数处理构造函数,或者使用或其他方法,请使用该方法。(调用构造函数。)基于类具有默认构造函数(即没有参数),您可以简单地调用 如果它有参数,它会变得更复杂一些 您必须通过传入预期的参数类类型来获取对相应的
构造函数的引用
一旦你有了它,你就可以调用传递给它相应的对象Class.forName()查找;那么我如何设置和获取类的值呢?您好,Matthew,谢谢您的回复,但是如果有50多个类,并且基于某些条件,我将发送相关字符串作为参数,那么我如何知道要动态创建哪个类对象呢。也就是说,现在我将它作为“代理”传递,接下来如果我可以传递“Employee”,那么这个方法将如何帮助我生成字符串变量的值作为objecthi Jon,我想为字符串变量的值的类创建一个对象。如果我不知道它是“代理”,它可能是其他东西,那么我如何动态生成它。。。我希望你明白我的问题。。。
Agent agent = (Agent) Class.forName(path).newInstance();