我刚开始使用 IntelliJ Idea,我有以下代码:
private boolean verifyToken(TokenTypeEnum expectedTokenType, Token token) {
return token != null &&
token.getTokenType() == expectedTokenType &&
token.getExpiryDate().isAfter(Instant.now());
}
现在 IntelliJ-IDEA 提示这个 boolean 方法总是被反转。但是我专门编写了该方法,因此它返回一个正数,我不想制作一个方法 isInvalidToken 或类似的东西。我相信这个警告的重点实际上是为了避免诸如此类的负面影响。
此外,如果我真的让 IntelliJ 自动反转该方法,它会生成这样的表达式,这完全不是我想要的,因为它更难推理(即使我会重写日期比较)
private boolean newNegativeMethod(TokenTypeEnum expectedTokenType, Token token) {
return token == null ||
token.getTokenType() != expectedTokenType ||
!token.getExpiryDate().isAfter(Instant.now());
}
为什么要这样做?我当然可以禁用警告,但我宁愿不这样做。
最佳答案
“总是反转”意味着在所有调用方法的地方,!运算符应用于调用表达式。 IntelliJ IDEA 不知道从语义的角度来看这是否很难或容易推理;它只是执行句法分析。如果您认为反转方法会使代码更难理解,只需取消对该方法的检查即可。
关于java - 为什么 IntelliJ IDEA 认为我的 Boolean 方法总是被反转,而实际上却不是?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49006137/