黑马程序员技术交流社区
标题:
Constructor的反射问题
[打印本页]
作者:
Kelvinhu
时间:
2014-4-14 23:45
标题:
Constructor的反射问题
本帖最后由 Kelvinhu 于 2014-4-15 10:52 编辑
Constructor[] cons = Student.class.getConstructors(); //想要返回Student类中所有的构造方法,这样做为什么返回不了。。求解。
贴上代码。。。
package Testpackage;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.Date;
public class Test {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
Student a = new Student();
Class cls = a.getClass();
System.out.println(cls);
Method gstudy = cls.getMethod("study", null);
System.out.println(gstudy);
Constructor[] cons = Student.class.getConstructors(); //想要返回Student类中所有的构造方法,这样做为什么返回不了。。求解。
for (Constructor co : cons) {
System.out.println(co);
}
}
}
class Student {
private int grade;
private static int teststatic;
Student() {
this.grade = 0;
}
Student(int i) {
this.grade = i;
}
public void study() {
System.out.print("like study");
grade = 100;
teststatic = 0;
}
public void sleep() {
System.out.print("like sleep");
}
static void play() {
System.out.print("like play");
teststatic = 0;
}
}
复制代码
作者:
榨菜
时间:
2014-4-15 02:28
getDeclaredConstructors() 使用这个方法来得到所有的构造方法
作者:
清风夜独醉
时间:
2014-4-15 03:34
getConstructors()这个方法得到是所有的public权限的构造方法,而你的构造方法里都是默认权限的,所以你要想得到全部的构造方法,就要用到另外一个方法getDeclaredConstructors(),这个方法得到是所有声明的构造函数,包括私有的。
类似还有getDeclaredFields()得到所有声明的字段,getDeclaredMethods()得到所有声明的方法
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2