![](/img/trans.png)
[英]"Make this anonymous inner class a lambda" code smell in SonarLint
[英]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.