我正在尝试某些东西而且我写了这段代码,
boolean x = null instanceof Object;
Object o = null;
boolean y = o instanceof Object;
返回false并不奇怪。让我感到惊讶的是,IntelliJ IDEA抱怨y
总是false
,但对x
没有说什么。这意味着什么吗?
答案 0 :(得分:2)
这可能仅仅意味着IDEA代码分析器不具备支持这个用例"用例"。分析器可能(有意)编码以检测先前已分配给null
的变量的使用,因为这是编码时常见的错误,但null instance of Object
情况不常见因为很少有程序员会写这个,而实际上意味着别的东西。
像Sonar,Eclipse或IDEA这样的静态代码分析器无法正确检测到许多这样的构造。我不担心它,只要知道IDE无法发现你在代码中犯的每一个错误。