zoukankan      html  css  js  c++  java
  • 反射

    ava 反射机制

    class=class.forName(“”)

    class= aa.getClass();    user aa=new user();

    class=user.class;

    报名.类名$内部类

    Class<?> clazz = Class.forName("test.aa$b");

    实例化:

    Class a=Class.forName("Reflection.Ship");

    Class[] c={String.classint.class};    //new Class[] {  String.class, String.class }  

    Constructor con=a.getConstructor(c);    con.setAccessible(true); 

    Object obj=con.newInstance("asd",12);

    c.newInstance(new Outer())  实例化内部类要加类的实例化

    获取方法,变量:

    c.getDeclaredFields(); 

     fields[i].getType() == By.class

     fields[i].getName()  拿名

     fields[i].get(aa);   拿值  //实例化的aa

    c.getDeclaredMethods();

    执行方法:

    clazz = Class.forName(className);

    Object o = clazz.newInstance();

    Method[] ms = clazz.getDeclaredMethods();

                for (Method m : ms) {

                    if (m.getName().equals(methodName)) {

                        m.invoke(o);

                    }

                }

    执行方法返回值:

    Class cls = Class.forName("com.common.page."+classname); 

    Method m = cls.getDeclaredMethod("By",String.class)

    String aa= m.invoke(cls.newInstance(),value);

    修改变量:

    clazz = Class.forName(className);

    Field field=clazz.getDeclaredField(filedName);

    field.setAccessible(true);         

    field.set(filedName,changed);

  • 相关阅读:
    Entity Framework with NOLOCK
    读取的XML节点中带有冒号怎么办?
    一道数学运算题
    mock基本使用
    json-server基本使用
    axios、ajax、fetch三者的区别
    深入响应式原理
    vue组件传值
    递归与循环的区别
    undefined 和null的区别
  • 原文地址:https://www.cnblogs.com/season-xie/p/5330937.html
Copyright © 2011-2022 走看看