java - 为什么 IntelliJ IDEA 认为我的 Boolean 方法总是被反转,而实际上却不是?

标签 java intellij-idea

我刚开始使用 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/

相关文章:

java - Android LocationClient 总是连接不上

java - 动态输入文本字段

java - 正则表达式匹配最后一部分的问题

intellij-idea - WebStorm 在文件保存时自动上传

java - Java 8 的 Lombok 问题

java - 通过 InstallCert.java 接收服务器证书时出现 PKIX 错误

Java:我如何获得我需要的int???用什么东西来分​​裂它们?

java - Intellij tomcat 服务器控制台编码问题与 log4j 的编码 = UTF-8?

css - intellij Idea - 如何打开 .css 文件(如 application.css)?

eclipse - 如何在Eclipse IDE中使用Intellij注释?