反射知识:
获取类型模板对象有三种方式:
1. 通过对象调用Object类中的getClass()方法来获取Class对象。
2. 利用Class类中的forName( String className)方法来获取class对象。
注:其中的className即为类全名(类全名 =包名.类名)。
3. 通过类型名来获取class对象。
代码如下:
package day11.javaAdvance.exercise.reflection.Class;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class ClassTest1 {
public static void main(String[] args) throws Exception {
/*
* 获取类型模板对象有三种方法:
*/
// 1.通过对象调用getClass方法获取Class对象
Student stu = new Student("wangwang", 4);
// 类型模板对象
Class c1 = stu.getClass();
System.out.println("1..." + c1);
System.out.println("^^^" + c1.getName());
// 2.利用Class对象来获取
Class c2 = Class.forName("day11.javaAdvance.exercise.reflection.Class.Student");//方法:forName("类全名");
System.out.println("2..." + c2);
// 3.通过类型名来获取
Class c3 = Student.class;
System.out.println("3..." + c3);
/*
* 获得此类的属性方法
*/
Field f[] = c1.getFields();
for (int i = 0; i < f.length; i++) {
System.out.println("属性有:" + f[i].getName());
}
}
}
class Student {
public String name;
public int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
private void show() {
}
public void print() {
System.out.println("name=" + name + "," + "age=" + age);
}
}