声纳:lambda - 在声明周围删除无用的花括号

时间:2014-06-23 11:04:55

标签: lambda java-8 sonarqube

这些代码示例:

import java.util.Observer;

public class Main {
    public static void main(String[] args) {
        Observer observer = (o, arg) -> {
            if (arg != null) {
                System.out.println(arg);
            }
        };
    }
}

import java.util.Observer;

public class Main {
    public static void main(String[] args) {
        Observer observer = (o, arg) -> {
            try {
                String test = (String) arg;
                ...
            }
            catch (ClassCastException e) {
            }
        };
    }
}

不符合此sonarqube rule

  

仅包含一个语句的Lamdbas不应嵌套此语句   在一个块中:删除语句

周围无用的花括号

我该如何解决?

1 个答案:

答案 0 :(得分:8)

将这些花括号分类为“无用”是错误的。

您可以在单个表达式语句周围省略花括号,例如,方法调用,new表达式或x++,{{1}等等。

或者您可以将唯一的x+=y语句转换为表达式… -> { return x; }

但是你不能在每个语句中省略花括号。

你无法解决这个问题。您唯一能做的就是提交错误报告。

顺便说一下,即使这样,删除它们也不一定是可读性改进。这取决于......