zoukankan      html  css  js  c++  java
  • class对象,反射

    获取Class对象的三种方式:

    1.通过getObject()

    Person p=new Person();

    Class c=p.getClass();

    2.通过类名.class获取字节码文件对象

    Class c=Person.class

    3.通过class类中的方法,将类名传给forName方法

    Class c=Class.forName("Person")

    反射:Constructor

    对任意类,都能够知道这个类的所有属性和方法。

    对任意对象,都能够调用任意一个方法和属性。

    通过反射获取构造方法并使用:

    Class c=Class.forName("Person")

    1.获取所有公共构造方法:

    Constructor[] cons=c.getDeclaredConstructors()

    遍历cons:  for(Constructor ccc:cons){sysout(ccc)}

    2.获取公共有参构造方法

    Constructor con1=c.getConstructor(String.class);

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

    con1.newInstance("aaa")

    con2.newInstance("aaa",10)

    3.暴力反射,获取私有private构造方法。不提倡

    Constructor c=c.getDeclaredConstructor(String.class);

    con.setAccessible(true);

    //创建对象

    Objcet stu=(Person)con.newInstance("aaa");

  • 相关阅读:
    Mysql转换成SqlServer数据库,以及SqlServer转换成Mysql数据库
    MySQL分页存储过程
    zabbix监控指定端口