前言:反射使用回顧
一、獲取字節碼文件對象的三種方式,推薦使用第三種方式
//獲取字節碼文件對象的三種方式
//方式一
Class c1 = Student.class;
//方式二
Student stu = new Student();
Class c2 = stu.getClass();
//方式三
Class c3 = Class.forName("cn.itcast.javaeevideoday02.Student");
二、獲取無參構造
//獲取對象無參構造
Constructor constructor = c3.getConstructor();
Object student = constructor.newInstance();
System.out.println(student);
三、獲取有參構造
//獲取有參構造
Constructor constructor2 = c3.getConstructor(String.class,int.class,String.class);
Object student2 = constructor2.newInstance("張三",20,"男");
System.out.println(student2);
四、快捷方式獲取對象實例
前提:對象有空參構造,並且權限爲public
//快捷方式獲取對象實例
Object student = c3.newInstance();
System.out.println(student);
五、獲取對象成員變量,並賦值和獲取值
Object student = c3.newInstance();
//給成員變量賦值
Field field = c3.getField("name");
field.set(student, "張三");
System.out.println(student);
//獲取成員變量值
Object object = field.get(student);
System.out.println(object);
六、獲取成員方法
get/set方法示例
Object student = c3.newInstance();
//有參數set
Method method = c3.getMethod("setName",String.class);
method.invoke(student, "張三");
System.out.println(student);
//無參數get
Method method2 = c3.getMethod("getName");
Object object = method2.invoke(student);
System.out.println(object);