import java.util.*;
import java.text.*;
import java.lang.reflect.*;
public class Test {
String name;
public Test()
{
System.out.println("In Construtor");
}
public Test(String name)
{
this.name=name;
System.out.println("In Construtor paramitarized-----"+name);
}
public int q() {
System.out.println("working");
return 1;
}
public static void main(String args[] ) throws Exception {
Class c=Class.forName("Test");
Test t=(Test)c.newInstance();
t.q();
Constructor cons[]=c.getConstructors();
for(Constructor ci:cons)
ci.newInstance();
Constructor<?> pcon=c.getConstructor(String.class);
pcon.newInstance();
System.out.println(Test.class.getName());
}
}
我只是想掌握 Class 和 ClassLoader Classes 的概念。现在这一行Constructor<?> pcon=c.getConstructor(String.class);
显示 IllegalArgumentException: 为什么?
谢谢 Jon Skeet :) 我用这个和它的工作改变了我的代码
Class c=Class.forName("Test");
Test t=(Test)c.newInstance();
t.q();
Constructor<?> pcon=c.getConstructor(String.class);
pcon.newInstance("arijit");
System.out.println(Test.class.getName());
但是当我使用 -Xlint 进行编译时,它给出了下面提到的警告: Uncheck call getConstructor(java.lang.Class....) as a member of raw type java.lang.Class
这是什么意思?