从字符串运行java类
有什么办法可以让它工作吗从字符串运行java类,java,Java,有什么办法可以让它工作吗 String ClassName = "testing"; Classname.main(); testing.class是bin文件夹中的一个类 如果我在使用eclipse很重要,您可以这样做: String aux = (String) (Class.forName("java.lang.String")).newInstance(); public Object withName(String className) { try{ Cl
String ClassName = "testing";
Classname.main();
testing.class是bin文件夹中的一个类如果我在使用eclipse很重要,您可以这样做:
String aux = (String) (Class.forName("java.lang.String")).newInstance();
public Object withName(String className) {
try{
Class<?> c = Class.forName(className);
Constructor<?> cons = c.getConstructor();
return cons.newInstance();
}catch (Exception e){
e.printStackTrace();
return null;
}
}
然后,您可以使用
aux
执行您想要的操作,例如调用静态方法。您可以得到如下类:
String aux = (String) (Class.forName("java.lang.String")).newInstance();
public Object withName(String className) {
try{
Class<?> c = Class.forName(className);
Constructor<?> cons = c.getConstructor();
return cons.newInstance();
}catch (Exception e){
e.printStackTrace();
return null;
}
}
具有名称的公共对象(字符串类名称){
试一试{
类别c=类别forName(类别名称);
构造函数cons=c.getConstructor();
返回cons.newInstance();
}捕获(例外e){
e、 printStackTrace();
返回null;
}
}
如果您不知道它是哪个类,要找到所需类的方法,可以查看以下帖子:
字符串是否有main()
方法?不,你可以做到这一点(只是不是像你的问题中所显示的那样,而是以一种稍微不同的方式),这里的关键词是反射。查看类
类及其提供的方法。