Java核心考试理论

时间:2015-05-09 22:49:15

标签: java eclipse

对于以下类,Callable接口的正确实现是什么?

    class Process implements Callable<List<Set<String>>>{    }

A.  public Future< List<Set<String>>> call() throws Exception
B.  public void call(List<Set<String>> data) throws RuntimeException
C.  public List<Set<String>> call(String data) throws RuntimeException
D.  public List<Set<String>> call() throws Exception

我在Eclipse中实现了这个,答案是D.我想知道的是,我怎么知道这个类是否会抛出异常或RuntimeException?有没有办法区分?我知道运行时异常是一个未经检查的异常,并且检查了异常,但在问题的某处有一个提示告诉我它是Exception类吗?如果我没有在Eclipse中实现这一点,我就不可能知道调用方法不接受String参数,因此它可能是C或D.我应该怎么知道答案是抛出异常?

1 个答案:

答案 0 :(得分:1)

在实现该方法时,您必须指定完全相同的接口,即

V call() throws Exception
doc sais一样。但是,您可以使throws子句更具限制性,这意味着您可以指定像这里一样抛出RuntimeException - 这是Exception的子类。因此,此处的throws声明并未告诉您答案。这些是参数和返回类型。

此处的返回类型必须为List<Set<String>>,因为它在

中被指定为V参数(如doc中所示)
class Process implements Callable<List<Set<String>>>{    }

另一件事是call()方法不带任何参数。

考虑到这些,只留下答案D.它都返回一个合适的类型,不带任何参数。希望它能帮到你!