如果表达式没有副作用并且其结果始终相同(就 Object.equals()
而言),则会报告该表达式。
此类表达式的示例是 a + b
、Math.max(a, b)
、a.equals(b)
、 s.substring(a,b)
。 为确保结果始终相同,已验证表达式中使用的变量在表达式之间不会更改其值。
此类表达式可能包含不可变的类(如 String
、BigDecimal
等)和实用类(如 Objects
、Math
)的方法(random()
除外)。
Object.equals()
, Object.hashCode()
, Object.toString()
,
Comparable.compareTo()
和Comparator.compare()
等常用方法也可以使用,因为没有任何可见的副作用。
使用表达式复杂性阈值选项指定最小表达复杂性阈值。 指定更大的数字将删除关于短表达式的报告。
2018.3 的新功能