繁体   English   中英

代码气味:使这个匿名内部类成为 lambda

[英]Code Smell : Make this anonymous inner class a lambda

public Transformer getTransformed(Locale locale, SlingHttpServletRequest request) {
    return new Transformer() {
        public Object transform(Object o) {
            Tag tag = (Tag) o;

            String tagId = tag.getTagID();
            ValueMap vm = new ValueMapDecorator(new HashMap<>());
            vm.put("value", tagId);
            vm.put("text", tag.getTitlePath(locale));
            return new ValueMapResource(request.getResourceResolver(), new ResourceMetadata(), "nt:unstructured", vm);
        }
    };
}

在此处输入图像描述 我有上面的函数,我得到了一个代码味道,上面写着" Make this anonymous inner class a lambda "

现在我不确定如何将其转换为 lambda 函数,因为在 valuemap 中放置了值。 如何将上述函数转换为 lambda 函数?

这就是您所需要的,无需创建某个类的对象:

Function<Object, Object> transform = o -> {
        Tag tag = (Tag) o;

        String tagId = tag.getTagID();
        ValueMap vm = new ValueMapDecorator(new HashMap<>());
        vm.put("value", tagId);
        vm.put("text", tag.getTitlePath(locale));
        return new ValueMapResource(request.getResourceResolver(), new ResourceMetadata(), "nt:unstructured", vm);

    };

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM