所以我在这里有这个代码,但我不明白为什么我的Try语句有下划线。当我将鼠标悬停在它上面时,它表示b3已在方法main中定义。我需要做些什么才能使其按照显示的方式工作。 (其他一切都有效)
public class ReviewTest {
public static void main(String[] args)
{
boxes b1 = new boxes();
System.out.printf("My first Box = %s\n", b1.toString());
System.out.printf("My first Box = %s\n", b1);
boxes b2 = new boxes(10.0, 12.4, 13.9);
System.out.printf("My second Box = %s\n" , b2);
System.out.printf("The volumne of b2 = %.3f\n", b2.volume());
System.out.printf("The surface Area of b2 = %.3f\n", b2.surfaceArea());
boxes b3 = null;
try {
boxes b3 = new boxes(-1,4.3, 12);
}
catch (IllegalArgumentException ex)
{
System.out.println(ex.getMessage());
}
}
答案 0 :(得分:1)
这是因为你已经定义了b3
。您需要做的是解决这个问题:
在try / catch块之前,您定义了boxes b3 = null;
。您需要做的是转到try
块内,然后在boxes
之前移除b3 = new boxes(-1,4.3, 12);
部分。
答案 1 :(得分:0)
boxes b3 = new boxes(-1,4.3, 12);
上
b3 = new boxes(-1,4.3, 12);