我正在设置Intellij环境,并且想知道如何为以下项打开Nullable警告:
Map<String, String> simpleMap = new HashMap<>();
String thisWillBeNull = simpleMap.get("key");
int l = thisWillBeNull.length(); //<-- how do I get a Nullable warning here?
最佳答案
IntelliJ的无效性分析很有用,但有局限性。它对地图的处理较弱。
如果希望获得有关使用映射的代码的保证,则可以使用Nullness Checker,其中包括map key analysis。
它不是IntelliJ内置的,但是您可以integrate it with IntelliJ或将其作为单独的工具运行。
给出以下代码:
import java.util.HashMap;
import java.util.Map;
public class MapGetTest {
void m() {
Map<String, String> simpleMap = new HashMap<>();
String thisWillBeNull = simpleMap.get("key");
int l = thisWillBeNull.length();
}
}
您可以运行以下命令:
javac -processor nullness MapGetTest.java
结果是:
MapGetTest.java:8: error: [dereference.of.nullable] dereference of possibly-null reference thisWillBeNull
int l = thisWillBeNull.length();
^
1 error