java 如何由字符串得到和字符串同名的类
就是通过参数传入了一个字符串想在方法里面得到和该字符串同名的类的引用voidmethod(Stringclassname){假如classname=“Print”我想能够...
就是通过参数传入了一个字符串 想在方法里面得到和该字符串同名的类的引用
void method(String classname){
假如classname=“Print”
我想能够通过这个字符串得到Print这个类得引用 或者一个实例
} 展开
void method(String classname){
假如classname=“Print”
我想能够通过这个字符串得到Print这个类得引用 或者一个实例
} 展开
展开全部
这个就是工厂设计模式了.
class.forName是可以完成你的需求的
public static Object getBeans(String name) {
Object obj = null;
String className = ps.getProperty(name); //如果你没有用配置文件可以不要这一句
try {
Class c = Class.forName(className);//直接写Class.forName("className")
try {
obj = c.newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return obj;
}
class.forName是可以完成你的需求的
public static Object getBeans(String name) {
Object obj = null;
String className = ps.getProperty(name); //如果你没有用配置文件可以不要这一句
try {
Class c = Class.forName(className);//直接写Class.forName("className")
try {
obj = c.newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return obj;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以用反射
package com.conduct.dao;
public class Test {
public static void main(String[] args) {
try {
System.out.println(Class.forName("com.conduct.dao.Test1").newInstance());
} catch (Exception e) {
e.printStackTrace();
}
}
}
class Test1{ }
这个输出的就是 com.conduct.dao.Test1@18dd7404
package com.conduct.dao;
public class Test {
public static void main(String[] args) {
try {
System.out.println(Class.forName("com.conduct.dao.Test1").newInstance());
} catch (Exception e) {
e.printStackTrace();
}
}
}
class Test1{ }
这个输出的就是 com.conduct.dao.Test1@18dd7404
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
自己查一下Class.forName()的用法吧。需要完整的类路径(xx.yy.Print),不能单是类名。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-07-30
展开全部
Class class = Class.forName("Print");
Print p = class.newInstance();
Print p = class.newInstance();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询