小编Nan*_* Ba的帖子

[SonarLint]:让这个匿名的内部类成为一个lambda

下面的代码有效,但是我收到SonarLint的通知,因为我在流中使用了一个匿名类而不是lambda表达式,我没有看到如何改进下面的代码来避免通知:

Properties prop = new Properties();
Properties temp = new Properties();
//... add some values and keys in prop and temp

prop.putAll(temp.entrySet().stream()
    .filter( entry -> !prop.containsKey(entry.getKey()))
    .map( new Function<Entry<Object, Object>, Entry<String, String>>(){ 
        @Override
        public Entry<String, String> apply(Entry<Object, Object> entry) {
            return new Entry<String, String>() {
                @Override
                public String setValue(String value) {
                    return value.trim().toLowerCase();
                }

                @Override
                public String getValue() {
                    return ((String) entry.getValue()).trim().toLowerCase();
                }

                @Override
                public String getKey() {
                    return ((String) entry.getKey()).trim().toLowerCase();
                }
            };
        }
    })
    .collect(Collectors.toMap(Entry<String,String>::getKey, Entry<String,String>::getValue)));
Run Code Online (Sandbox Code Playgroud)

代码的解释: 我使用java.util中的属性类,不幸的是entrySet …

lambda anonymous-function java-8 java-stream sonarlint

5
推荐指数
1
解决办法
1599
查看次数

SONAR:用带有字符串参数的方法引用替换为lambda

 List<String> list;
 //...add something in the list
String value = "anything";
boolean b = list.stream().anyMatch( element -> value.startsWith(element))
Run Code Online (Sandbox Code Playgroud)

我通过方法参考获得有关用lambda替换的声纳信息.但是我必须在String上调用方法引用???

lambda java-8 sonarlint sonarlint-eclipse

3
推荐指数
1
解决办法
1214
查看次数