zoukankan      html  css  js  c++  java
  • DirectFieldAccessor的使用场景(好多图)

    1、背景:

    在项目中遇到某实例中的某个属性被声明为private ,而且实体类中,不提供该属性的get方法,导致无法通过get获取该属性值。这个时候,我们可以利用DirectFieldAccessor这个类进行获取我们想要的属性值。

    2、作用

    它的功能是直接操作Bean的属性值,代替使用get/set方法去操作Bean。

    3、使用案例

    class User {
    
        private int id ;
    
        private Ving ving = new Ving();
    
        public User(int id) {
            this.id = id;
        }
    }
    
    class Ving{
        public int activeCount = 6;
    }
    
    public class TestDirectClass {
    
        @Test
        public void testDirectFieldAccessor() {
            User user = new User(111);
    
            DirectFieldAccessor accessor = new DirectFieldAccessor(user);
            TypeDescriptor id = accessor.getPropertyTypeDescriptor("id");
            System.out.println(id.getName());
            Object idValue = accessor.getPropertyValue("id");
            System.out.println("idValue:" +idValue);
    
            Ving ving = (Ving)accessor.getPropertyValue("ving");
            System.out.println(ving.activeCount);
    
        }
    
        @Test
        public void testPropertyAccessorFactory() {
            User user = new User(111);
    
            ConfigurablePropertyAccessor configurablePropertyAccessor = PropertyAccessorFactory.forDirectFieldAccess(user);
    
            TypeDescriptor id = configurablePropertyAccessor.getPropertyTypeDescriptor("id");
    
            System.out.println(id.getName());
    
            Object idValue = configurablePropertyAccessor.getPropertyValue("id");
            System.out.println("idValue:" +idValue);
    
            Ving ving = (Ving)configurablePropertyAccessor.getPropertyValue("ving");
            System.out.println(ving.activeCount);
    
    
        }
    }
  • 相关阅读:
    MyEclipse里运行时报错
    Django中Template does not exit
    Django简单界面开发
    Django安装过程
    搭建NFS服务器和客户端过程中遇到的问题
    URL传值中文乱码的解决
    结合《需求征集系统》谈MVC框架
    对于微信小程序登录的理解图
    FpSpread基本句法
    sql,lambda,linq语句
  • 原文地址:https://www.cnblogs.com/vingLiu/p/12199860.html
Copyright © 2011-2022 走看看