我这里有代码,它运行一系列测试,以查看数组中的最后一个元素是否是预期的数字。我必须输入的代码到[???]当前的位置。
//The answer must be the shortest possible
class EmptyArrayException extends RuntimeException{}
class ArrayUtil{
public static Object lastElement (Object[]array)[???]{
if(array.length>0)return array[array.length-1];
throw new EmptyArrayException();
}
}
public class Exercise{
public static void test(){
assert ArrayUtil.lastElement(new Integer[]{1,2,3}).equals(3);
assert ArrayUtil.lastElement(new Integer[]{1,2}).equals(2);
assert ArrayUtil.lastElement(new Integer[]{1}).equals(1);
assert ArrayUtil.lastElement(new Integer[]{}).equals(1);
assert false:"Code not reachable";
}
public static void main(String [] arg){
try{ test();}
catch(Throwable t){/*the test suit
logs t on the test results:
a single place for error logging.*/}
}
}
我认为我会写'抛出EmptyArrayException',但这是错误的。 '抛出EmptyArrayException()'也是错的。
那么我把什么放在[???]空间?
答案 0 :(得分:3)
由于您的例外是RuntimeException
,因此您无需指定任何内容。但是你可以。有时我这样做是为了记录这种方法可能引发某种异常。
public static Object lastElement (Object[]array) throws EmptyArrayException
由你决定。