DirectFieldAccessor的使用场景(好多图)
Posted 邂逅那青春
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DirectFieldAccessor的使用场景(好多图)相关的知识,希望对你有一定的参考价值。
1、背景:
在项目中遇到某实例中的某个属性被声明为private ,而且实体类中,不提供该属性的get方法,导致无法通过get获取该属性值。这个时候,我们可以利用DirectFieldAccessor这个类进行获取我们想要的属性值。
2、DirectFieldAccessor的作用
它的功能是直接操作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); } }
以上是关于DirectFieldAccessor的使用场景(好多图)的主要内容,如果未能解决你的问题,请参考以下文章