zoukankan      html  css  js  c++  java
  • Android(java)学习笔记48:通过反射获得带参构造方法并且使用

    1. 反射获得带参构造方法并且使用:

    (1)获取字节码文件对象

          Class c = Class.forName("cn.itcast_01.Person");

    (2)获取带参构造器对象,public Constructor<T> getConstructor(Class<?>... parameterTypes)

         Constructor con = c.getConstructor(String.class ,    int.class ,   String.class);

    (3)通过带参构造器对象创建对象,public T newInstance(Object... initargs)

         Object obj = con.newInstance("林青霞", 27, "北京");

         System.out.println(obj);

    运行效果图和代码如下(下面的Person是另外一个包下的,这里我们访问Person):

     1 package cn.itcast_02;
     2 
     3 import java.lang.reflect.Constructor;
     4 
     5 /*
     6  * 需求:通过反射去获取该构造方法并使用:
     7  * public Person(String name, int age, String address)
     8  * 
     9  * Person p = new Person("林青霞",27,"北京");
    10  * System.out.println(p);
    11  */
    12 public class ReflectDemo2 {
    13     public static void main(String[] args) throws Exception {
    14         // 获取字节码文件对象
    15         Class c = Class.forName("cn.itcast_01.Person");
    16 
    17         // 获取带参构造方法对象
    18         // public Constructor<T> getConstructor(Class<?>... parameterTypes)
    19         Constructor con = c.getConstructor(String.class, int.class,
    20                 String.class);
    21 
    22         // 通过带参构造方法对象创建对象
    23         // public T newInstance(Object... initargs)
    24         Object obj = con.newInstance("林青霞", 27, "北京");
    25         
    26         System.out.println(obj);
    27     }
    28 }
  • 相关阅读:
    STL容器内数据删除
    grep 同时满足多个关键字和满足任意关键字
    程序运行栈空间不足程序崩溃问题
    VS2010中设置程序以管理员身份运行
    python 包详解
    select 详解
    Hdu 1166
    CF1204C
    CF1204B
    CF1204A
  • 原文地址:https://www.cnblogs.com/hebao0514/p/4565733.html
Copyright © 2011-2022 走看看