zoukankan      html  css  js  c++  java
  • 一分钟让你会用反射

    我们在开发过程中总会碰到反射,一直在寻找封装的好用的反射库项目。昨天研究了一下,得到了很好的结果。 相信你看完这篇文章后立马就能学会反射。

    首先请clone这个项目:https://github.com/jOOQ/jOOR

    然后复制里面的两个类(https://github.com/jOOQ/jOOR/tree/master/jOOR/src/main/java/org/joor)进入自己的项目即可。、

    测试:

    建立一个测试类:

    package kale.androidframework;
    
    /**
     * @author Jack Tony
     * @date 2015/7/8
     */
    public class Kale {
    
        private String name;
    
        private String className;
    
        Kale() {
    
        }
    
        Kale(String clsName) {
            this.className = clsName;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        private String getName() {
            return name;
        }
    
        public String getClassName() {
            return className;
        }
    
        public static void method() {
            
        }
    }

    建立测试用例:

    String name = null;
            Kale kale;
            // 【创建类】
            kale = Reflect.on(Kale.class).create().get(); // 无参数 
            kale = Reflect.on(Kale.class).create("kale class name").get();// 有参数
            System.err.println("------------------> class name = " + kale.getClassName());
    
            // 【调用方法】
            Reflect.on(kale).call("setName","调用setName");// 多参数
            System.err.println("调用方法:name = " + Reflect.on(kale).call("getName"));// 无参数
            
            // 【得到变量】
            name = Reflect.on(kale).field("name").get();// 复杂
            name = Reflect.on(kale).get("name");// 简单
            System.err.println("得到变量值: name = " + name);
            
            // 【设置变量的值】
            Reflect.on(kale).set("className", "hello");
            System.err.println("设置变量的值: name = " + kale.getClassName());
            System.err.println("设置变量的值: name = " + Reflect.on(kale).set("className", "hello2").get("className"));

    这样就完成了常用功能的讲解啦,如果你想看看详细的测试用例,可以到原本项目中的test文件夹中查看。

    test类都在这里:https://github.com/jOOQ/jOOR/tree/master/jOOR/src/test/java/org/joor/test

  • 相关阅读:
    jquery的全选,全不选,反选
    jquery中的on方法绑定动态元素
    IIS服务器不能下载.apk文件的解决方略
    14:堆和堆排序
    虚拟内存
    leetcode28:实现strStr()
    leetcode387:字符串中的第一个唯一字符
    leetcode344:反转字符串
    leetcode198:打家劫舍
    leetcode64:最小路径和
  • 原文地址:https://www.cnblogs.com/tianzhijiexian/p/4632268.html
Copyright © 2011-2022 走看看