以下代码:
public void test()
{
@Nullable T first = null;
Graph<T> cycleG = new Graph<>();
ArrayList<Graph<T>> segments = GraphFactory.makeSegments(this, cycleG);
Graph<T> seg = segments.get(0);
for (T v : cycleG.vertices)
{
if (seg.hasVertex(v))
{
if (first == null) // redundant null check here
{
first = v;
}
}
}
assert first != null;
}
Run Code Online (Sandbox Code Playgroud)
在指示的行给我一个“冗余null检查”警告。“ T”是类型参数,类定义为
public class Graph<T extends Comparable<T>> implements IGraph
Run Code Online (Sandbox Code Playgroud)
这是错误吗?一个已知的?还是我忽略了某些东西。有什么避免的技巧吗?
注意:此代码没有意义,只是重现问题的一小部分。在循环后使用“ first”不会删除警告。
这是Java 8,Eclipse Luna 4.4.1。