黑马程序员技术交流社区

标题: 反射?Constructor Field Method [打印本页]

作者: Ethan丶    时间: 2015-9-21 00:22
标题: 反射?Constructor Field Method
以Person为例
  1. package com.reflect.constructor;

  2. /*
  3. *
  4. */
  5. import java.lang.reflect.Constructor;

  6. public class ReflectDemo2 {
  7.         public static void main(String[] args) throws Exception {
  8.                 /*
  9.                  * 1.public Person
  10.                  */
  11.                 // 获取字节码文件对象
  12.                
  13.                  Class c6 = Class.forName("com.reflect.Person"); // 获取代参构造方法对象
  14.                  Constructor con = c6.getConstructor(String.class, int.class,
  15.                                                                          String.class);
  16.                  // 通过代参构造方法创建对象
  17.                  // public T newInstance(Object...initargs)
  18.                  Object obj = con.newInstance("奥巴马",44, "美国");
  19.                  System.out.println(obj);
  20.                  
  21.                 /*
  22.                  * 2.private Person
  23.                  */
  24.                 Class c7 = Class.forName("com.reflect.Person");
  25.                 Constructor con1 = c7.getDeclaredConstructor(String.class);
  26.                 con1.setAccessible(true);
  27.                 Object obj1 = con1.newInstance("普京");
  28.                 System.out.println(obj1);
  29.         }
  30. }
复制代码

作者: Ethan丶    时间: 2015-9-21 00:23
  1.                 Class c1=Class.forName("com.reflect.field.Person");
  2.                 //构造方法

  3.                 Constructor con = c1.getDeclaredConstructor();
  4.                 Object obj = con.newInstance();
  5.                 Field addressField=c1.getField("address");
  6.                 //反射  逆向
  7.                 addressField.set(obj, "北京");
  8.                 System.out.println(obj);
复制代码

作者: jiaweizhang    时间: 2015-9-21 01:34
这个是获取一个类的实例对象




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2