getConstructor()和getDeclaredConstructor()区别:
getDeclaredConstructor(Class<?>... parameterTypes)
//返回指定参数的构造器,包括public的和非public的,当然也包括private的。
getDeclaredConstructors()返回所有构造器。
getConstructor(Class<?>... parameterTypes)
只返回访问权限是public的构造器。
getConstructors()只返回访问权限是public的构造器,不过没有类型限制。
//代码如下
public class TTest {
public static void main(String[] args) {
try {
Constructor<Demo> coo = Demo.class.getDeclaredConstructor(String.class);
coo.setAccessible(true);
Demo d = coo.newInstance("a");
System.out.println(d);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class Demo{
private Demo(){
}
private Demo(String i){
System.out.println("demo String");
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "Demo";
}
}
输出:demo String
Demo