[b]一共三个问题
问题一:按照API文档上 的声明方式 声明了该方法,为什么一直报错呢?问题二:为什么使用forName("tv.zhangjia.fs.User")会抛出ClassNotFoundException呢?
问题三:在main方法里调用getConstrutor(这里)  括号里的实参应该怎么写呢?
具体请看代码的第37行和2113
package tv.zhangjia.fs;import java.lang.reflect.Constructor;public class Test2 {

public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, SecurityException {
System.out.println("所有的公共构造方法");
new Test2().getConstructors();
System.out.println("所有的构造方法");
new Test2().getDeclaredConstructors();
System.out.println("获取指定的构造方法");
new Test2().getConstructor();//这里getConstrutor(这里应该怎么写呢?)


}

public void getConstructors() throws ClassNotFoundException {
//获取所有public构造方法
Class<?> cls = Class.forName("tv.zhangjia.fs.User");
//为什么使用forName("tv.zhangjia.fs.User")会抛出ClassNotFoundException呢?
Constructor<?>[] cs = cls.getConstructors();
for (Constructor<?> constructor : cs) {
System.out.println(constructor);
}

}
public void getDeclaredConstructors() throws ClassNotFoundException {
//获取所有构造方法,包括private
Class<?> cls = Class.forName("tv.zhangjia.fs.User");
Constructor<?>[] cs = cls.getDeclaredConstructors();
for (Constructor<?> constructor : cs) {
System.out.println(constructor);
}

}
public <T> void getConstructor(Class<?>... parameterTypes)//这里报错
            throws NoSuchMethodException,
                   SecurityException, ClassNotFoundException{
//获取指定的公共构造方法
//获取User类的Class对象
Class<?> cls = Class.forName("tv.zhangjia.fs.User");
//获取三个参数的构造方法
Constructor<?> constructor = cls.getConstructor(new Class[]{int.class,String.class,String.class});
System.out.println(constructor);
}
}class User {
//公共属性
public String data;
//1.私有化的属性
private int id;
private String userName;
private String password;
//2.无参构造方法
public User() {
super();
System.out.println("无参构造方法");
}
private User(int id,String userName) {
super();
this.id = id;
this.userName = userName;
}
//3.有参构造方法
public User(int id, String userName, String password) {
super();
this.id = id;
this.userName = userName;
this.password = password;
}
//4.为私有化的属性提供set和get方法
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
} //5.重写toString()
@Override
public String toString() {
return "User [id=" + id + ", userName=" + userName + ", password=" + password + "]";
}
//私有方法,测试暴力反射使用
private void show(String str){
System.out.println(str);
}


}报错信息如下: