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);
    
    
        }
    }
  • 相关阅读:
    bzoj 3993: [SDOI2015]星际战争
    bzoj 4066: 简单题
    bzoj 3611: [Heoi2014]大工程
    bzoj 3530: [Sdoi2014]数数
    bzoj 3529: [Sdoi2014]数表
    bzoj 3504: [Cqoi2014]危桥
    bzoj 3489: A simple rmq problem
    bzoj 3211: 花神游历各国
    bzoj 3196: Tyvj 1730 二逼平衡树
    bzoj 3172: [Tjoi2013]单词
  • 原文地址:https://www.cnblogs.com/vingLiu/p/12199860.html
Copyright © 2011-2022 走看看