获取类的方法参数类型返回 Class类型(为什么不是别的类型)的数组的好处在哪里 Class 和 constructor 存在什么关系呢
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("-----------------------------");
}
}}
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("-----------------------------");
}
}}
下面就是获得一个 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 操作符