public static void main(String[] args) {
Class c = student.class;
Constructor con[]=c.getConstructors();
for (int i = 0; i < con.length; i++) {
constructor = con[i];
Class[] c1=constructor.getParameterTypes(); for (int j = 0; j < c1.length; j++) {
Class class1 = c1[j];
System.out.print(c1[j].getName());
}
System.out.println("-----------------------------");
}
}
}
7 个解决方案
#1
那你认为应该是么类型呢?
#2
返回什么类型?Class是一个类的模板,能描述了一个类。
你获得一个类的constructor也就是构造方法后,要想调用,必须知道这个类的构造方法需要参数的个数和类型。。
Class就可以很详细的描述一个参数的类型,知道类型后调用时就知道要传什么类型的值进去。。
Class可以很明确的知道一个类里面有几个constructor,还有constructor所需要的参数。
整体来说,Class就是一个类的设计图纸,上面很清楚的描述了这个类的结构。
你获得一个类的constructor也就是构造方法后,要想调用,必须知道这个类的构造方法需要参数的个数和类型。。
Class就可以很详细的描述一个参数的类型,知道类型后调用时就知道要传什么类型的值进去。。
Class可以很明确的知道一个类里面有几个constructor,还有constructor所需要的参数。
整体来说,Class就是一个类的设计图纸,上面很清楚的描述了这个类的结构。
#3
在运行中的 Java 程序中,用 java.lang.Class 类来描述类和接口等。
下面就是获得一个 Class 对象的方法之一:
Class c = Class.forName("java.lang.String");
这条语句得到一个 String 类的类对象。还有另一种方法,如下面的语句:
Class c = int.class;
或者
Class c = Integer.TYPE;
它们可获得基本类型的类信息。其中后一种方法中访问的是基本类型的封装类 (如 Integer) 中预先定义好的 TYPE 字段。
然后是调用诸如 getDeclaredMethods 的方法,以取得该类中定义的所有方法的列表。
一旦取得这个信息,就可以进行下一步了——使用 reflection API 来操作这些信息,如下面这段代码:
Class c = Class.forName("java.lang.String");
Method m[] = c.getDeclaredMethods();
System.out.println(m[0].toString());
它将以文本方式打印出 String 中定义的第一个方法的原型。
这三个步骤将为使用 reflection 处理特殊应用程序提供例证。
模拟 instanceof 操作符
得到类信息之后,通常下一个步骤就是解决关于 Class 对象的一些基本的问题。例如,Class.isInstance 方法可以用于模拟 instanceof 操作符
下面就是获得一个 Class 对象的方法之一:
Class c = Class.forName("java.lang.String");
这条语句得到一个 String 类的类对象。还有另一种方法,如下面的语句:
Class c = int.class;
或者
Class c = Integer.TYPE;
它们可获得基本类型的类信息。其中后一种方法中访问的是基本类型的封装类 (如 Integer) 中预先定义好的 TYPE 字段。
然后是调用诸如 getDeclaredMethods 的方法,以取得该类中定义的所有方法的列表。
一旦取得这个信息,就可以进行下一步了——使用 reflection API 来操作这些信息,如下面这段代码:
Class c = Class.forName("java.lang.String");
Method m[] = c.getDeclaredMethods();
System.out.println(m[0].toString());
它将以文本方式打印出 String 中定义的第一个方法的原型。
这三个步骤将为使用 reflection 处理特殊应用程序提供例证。
模拟 instanceof 操作符
得到类信息之后,通常下一个步骤就是解决关于 Class 对象的一些基本的问题。例如,Class.isInstance 方法可以用于模拟 instanceof 操作符
#4
#5
为了看那80分的帖子!
#6
有点失望
#7
我在这个地方看到了java反射机制中的比较深入的讨论,重点说了反射的自检self-representation ,原因链接,安全性,常用方法,反射的性能劣势等,http://www.7747.net/kf/201103/86455.html
#1
那你认为应该是么类型呢?
#2
返回什么类型?Class是一个类的模板,能描述了一个类。
你获得一个类的constructor也就是构造方法后,要想调用,必须知道这个类的构造方法需要参数的个数和类型。。
Class就可以很详细的描述一个参数的类型,知道类型后调用时就知道要传什么类型的值进去。。
Class可以很明确的知道一个类里面有几个constructor,还有constructor所需要的参数。
整体来说,Class就是一个类的设计图纸,上面很清楚的描述了这个类的结构。
你获得一个类的constructor也就是构造方法后,要想调用,必须知道这个类的构造方法需要参数的个数和类型。。
Class就可以很详细的描述一个参数的类型,知道类型后调用时就知道要传什么类型的值进去。。
Class可以很明确的知道一个类里面有几个constructor,还有constructor所需要的参数。
整体来说,Class就是一个类的设计图纸,上面很清楚的描述了这个类的结构。
#3
在运行中的 Java 程序中,用 java.lang.Class 类来描述类和接口等。
下面就是获得一个 Class 对象的方法之一:
Class c = Class.forName("java.lang.String");
这条语句得到一个 String 类的类对象。还有另一种方法,如下面的语句:
Class c = int.class;
或者
Class c = Integer.TYPE;
它们可获得基本类型的类信息。其中后一种方法中访问的是基本类型的封装类 (如 Integer) 中预先定义好的 TYPE 字段。
然后是调用诸如 getDeclaredMethods 的方法,以取得该类中定义的所有方法的列表。
一旦取得这个信息,就可以进行下一步了——使用 reflection API 来操作这些信息,如下面这段代码:
Class c = Class.forName("java.lang.String");
Method m[] = c.getDeclaredMethods();
System.out.println(m[0].toString());
它将以文本方式打印出 String 中定义的第一个方法的原型。
这三个步骤将为使用 reflection 处理特殊应用程序提供例证。
模拟 instanceof 操作符
得到类信息之后,通常下一个步骤就是解决关于 Class 对象的一些基本的问题。例如,Class.isInstance 方法可以用于模拟 instanceof 操作符
下面就是获得一个 Class 对象的方法之一:
Class c = Class.forName("java.lang.String");
这条语句得到一个 String 类的类对象。还有另一种方法,如下面的语句:
Class c = int.class;
或者
Class c = Integer.TYPE;
它们可获得基本类型的类信息。其中后一种方法中访问的是基本类型的封装类 (如 Integer) 中预先定义好的 TYPE 字段。
然后是调用诸如 getDeclaredMethods 的方法,以取得该类中定义的所有方法的列表。
一旦取得这个信息,就可以进行下一步了——使用 reflection API 来操作这些信息,如下面这段代码:
Class c = Class.forName("java.lang.String");
Method m[] = c.getDeclaredMethods();
System.out.println(m[0].toString());
它将以文本方式打印出 String 中定义的第一个方法的原型。
这三个步骤将为使用 reflection 处理特殊应用程序提供例证。
模拟 instanceof 操作符
得到类信息之后,通常下一个步骤就是解决关于 Class 对象的一些基本的问题。例如,Class.isInstance 方法可以用于模拟 instanceof 操作符
#4
#5
为了看那80分的帖子!
#6
有点失望
#7
我在这个地方看到了java反射机制中的比较深入的讨论,重点说了反射的自检self-representation ,原因链接,安全性,常用方法,反射的性能劣势等,http://www.7747.net/kf/201103/86455.html