调试如何处理java中“死存储到局部变量”的错误?
我写了一个简单的测试代码。它是一个圆。我想大多数人都可以想象什么是圆形类,所以我不会粘贴它
在测试代码中,我尝试使用无效点测试circle构造函数,并假设抛出异常。但是一个错误发生了。我在网上查了一下,但还是不知道怎么解决这个问题。有人能帮我吗?谢谢
代码信息,bug在下面代码的最后一句中
/**
* Tests that the Circle constructor throws an exception for center Point.
*/
@Test (expected = IllegalArgumentException.class)
public void testIllegalCenter() {
//Instantiates a circle with an incorrect center point.
@SuppressWarnings("unused")
final Circle testCircle = new Circle(VALID_RADIUS, INVALID_POINT, VALID_COLOR);
}
错误报告
错误:CircleTest中testCircle的死存储。睾丸发育中心()
此指令为局部变量赋值,但该值不会在任何后续指令中读取或使用。通常,这表示错误,因为从未使用计算的值
请注意,Sun的javac编译器经常为最终的局部变量生成死存储。因为FindBugs是一个基于字节码的工具,所以没有简单的方法来消除这些误报
# 1 楼答案
只需删除变量并按如下方式调用构造函数: