声纳:lambda-移除语句周围无用的花括号
以下代码示例:声纳:lambda-移除语句周围无用的花括号,lambda,java-8,sonarqube,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) -> {
if (arg != null) {
System.out.println(arg);
}
};
}
}
不符合以下要求: 只包含一条语句的lamdba不应嵌套此语句 在块中:删除语句周围无用的大括号
我怎样才能修复它?将这些花括号归类为“无用”是错误的 可以省略单个表达式语句周围的大括号,例如,方法调用、
new
表达式或x++
、x+=y
等
或者,您可以将唯一的..->{return x;}
语句转换为表达式..->x
但你不能在每一条语句中省略大括号
你不能解决这个问题。你唯一能做的就是提交一份bug报告
顺便说一句,即使这样,删除它们也不一定能提高可读性。这取决于……回答得很好,我将在这里添加错误报告:谢谢。似乎您的错误不在那里-正确的问题在这里
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) {
}
};
}
}