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 你是怎么找到我的?");
        }
    }
  • 相关阅读:
    SQL Server 存储过程
    SQL数据类型介绍
    XML文件操作指南
    C# 程序集 与 反射
    详解C#中System.IO.File类和System.IO.FileInfo类的用法
    C# 之泛型详解
    C#中HashTable的用法示例2
    C#中HashTable的用法示例1
    DEDECMS5.7 首页和栏目页调用文章按权重排序
    linux创建用户,指定组
  • 原文地址:https://www.cnblogs.com/chbyiming-bky/p/9837997.html
Copyright © 2011-2022 走看看