zoukankan      html  css  js  c++  java
  • java反射,简单demo

    直接上码

    //获取方法、属性、构造函数时加 Declared 表示获取本类全部的,不分修饰符;不加 Declared 表示获取从父类继承的和本类公共的
    //获取 First 类的无参构造函数
    Constructor c = First.class.getDeclaredConstructor();
    //跳过安全检查
    c.setAccessible(true);
    //获取 First 对象
    First first = (First) c.newInstance();
    //获取 First 类对象
    Class clazz = First.class;
    //获取本类中所有的方法
    for (Method method : clazz.getDeclaredMethods()) {
        //输出方法名
        System.out.println(method.getName());
        //跳过安全检查
        method.setAccessible(true);
        //执行该方法,需要传入当前类的对象
        method.invoke(first);
    }
    for (Field field : clazz.getDeclaredFields()) {
        System.out.println(field.getName());
        //跳过安全检查
        field.setAccessible(true);
        //获取该变量的值,需要传入当前类的对象
        System.out.println(field.get(first));
        //修改该变量的值,需要传入当前类的对象
        field.set(first, 12456);
        //获取该变量的值,需要传入当前类的对象
        System.out.println(field.get(first));
    }

     First.java

    public class First {
        private First() {
        }
    
        private int a = 2;
    
        private void test() {
            System.out.println("hello 你是怎么找到我的?");
        }
    }
  • 相关阅读:
    hdu2844 Coins 多重背包
    Android笔记之网络状态推断
    TinyAdmin前端展现框架
    DeepLearning to digit recognizer in kaggle
    Oracle学习(十二):存储过程/存储函数
    【BZOJ1029】【JSOI2007】【建筑抢修】【贪心+堆】
    【HDOJ 1009】 CRB and String
    一些类的说明
    常用指令
    常用英语词汇
  • 原文地址:https://www.cnblogs.com/chbyiming-bky/p/9837997.html
Copyright © 2011-2022 走看看