java中如何以给定的字符串为名字创建某个类的实例?
例如先有一个方法voidmethod(Stringname){比如传入字符串为“p1”创建一个名为p1的people类的实例}方法体内应该怎么写?...
例如 先有一个方法void method(String name)
{
比如传入字符串为“p1”
创建一个名为p1的 people类的实例
}
方法体内应该怎么写? 展开
{
比如传入字符串为“p1”
创建一个名为p1的 people类的实例
}
方法体内应该怎么写? 展开
展开全部
可以用反射根据给定的类名来动态生成实例
比如你定义了一个类
package sample;
/**
* Created by pseudo on 15-9-16.
*/
public class TestClass {
private String name;
public TestClass(String name) {
this.name = name;
}
@Override
public String toString() {
return "TestClass{" +
"name='" + name + '\'' +
'}';
}
}
然后使用如下代码创建这个类的一个实例
public static void main(String[] args) throws Exception{
//加载要反射的类
Class clz = Class.forName("sample.TestClass");
//找到类的构造方法
Constructor constructor = clz.getDeclaredConstructor(String.class);
//使用找到的构造方法创建实例
Object instance = constructor.newInstance("Lilei");
System.out.println(instance);
}
这个instance就是需要的结果
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public static Object newInstance(String className)throws Exception{
Class clazz=Class.forName(className);
return clazz.newInstance();
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用java反射
public void method(String name)throws Exception{
Class clazz=Class.forName("name");
Object o = clazz.newInstance(); //o就是p1的实例,按照p1类型强转一下
}
public void method(String name)throws Exception{
Class clazz=Class.forName("name");
Object o = clazz.newInstance(); //o就是p1的实例,按照p1类型强转一下
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
people有相应的方法设置名字没得?
有的画直接用将这个字符串设置为people的名字就可以了吧
有的画直接用将这个字符串设置为people的名字就可以了吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询