相关疑难解决方法(0)

BeanUtils不适用于链设置器

例如

class tester
{
    @Test
    public void testBeanUtils() throws InvocationTargetException, IllegalAccessException, NoSuchMethodException
    {
        Stranger stranger = new Stranger();
        BeanUtils.setProperty(stranger,"name","wener");
        BeanUtils.setProperty(stranger,"xname","xwener");
        BeanUtils.setProperty(stranger,"yname","ywener");

        System.out.println(stranger);
    }
    @Data// lombok annotation generate all setter and getter
    public static class Stranger
    {
        @Accessors(chain = true)// generate chained setter
        String name;
        String xname;
        String yname;

        public Stranger setYname(String yname)// no lombok, still not work
        {
            this.yname = yname;
            return this;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的输出:

TestValues.Stranger(name=null, xname=xwener, yname=null)
Run Code Online (Sandbox Code Playgroud)

这有什么问题?连锁二传手是一件好事.有什么建议?

编辑

再次回到这个问题.这次我无法删除Accessors chain.现在,我commons-lang3用来实现.

// force …
Run Code Online (Sandbox Code Playgroud)

java reflection chaining lombok apache-commons-beanutils

8
推荐指数
2
解决办法
1735
查看次数