反射相关类的使用及其方法
public static void main(String args []) throws Exception {
// Properties pp = new Properties();
// pp.load(new FileReader("C:\\Users\\NJUSTZJC\\Desktop\\JavaProjects\\Java projects\\firstProject\\src\\FirstZjc\\data.properties"));
// String pn = pp.getProperty("packagename");
// String me = pp.getProperty("method");
//获得类对象
Class cls = Class.forName("FirstZjc.cat");
Object o = cls.newInstance();
//获得类的方法
Method method1 = cls.getMethod("eat");
Method method2 = cls.getMethod("cry");
method1.invoke(o);
//获得类的成员变量,注意不能获得private属性
Field f1 = cls.getField("age");
f1.get(o);
System.out.println(f1);
//获得类的构造器
Constructor constructor1= cls.getConstructor();
//这里老师传入的 String.class 就是String类的Class对象
//()中可以指定构造器参数类型, 返回无参构造器
Constructor constructor2 = cls.getConstructor(String.class);
System.out.println(constructor1);
System.out.println(constructor2);
}
}