Java:将throw-attribute设为通用是否有意义?

Alb*_*ert 2 java generics exception

当您以某种形式将回调传递给另一个函数时,您通常必须完全填充某些接口以便能够传递此类回调.该回调接口通常会限制您可以抛出的异常类型.

对我来说最自然的方式是被调用的函数会自动重新抛出(或忽略)回调抛出的异常.即它会自动继承它可以从回调中抛出的异常列表.即它可以抛出的异常列表是通用的.

有可能已经可能吗?如果是这样,为什么它不被Javas库使用呢?

如果还不可能,为什么不呢?将其包含在语言中并不复杂.它会使一些事情更加清洁(见上文).


一个例子:

我只是偶然发现Comparator.compare不能抛出异常(参见此处的相关问题)和Collections.sort(或其他使用的函数Comparator)也没有.

如果Comparator.compare可以抛出的异常是通用的并且Collections.sort会抛出相同的东西,那对我来说会更有意义.这将以更加自然和干净的方式解决我的问题.

Bal*_*usC 5

我没有看到任何合理的理由为什么订购对象应该抛出异常.如果订单是"未指定的",我只返回-1,以便它落在顶部.

  • 对象已经存在.信息已经存在.你只需要对它们进行比较/排列,这样就可以清楚地知道哪个是第一个.为什么要抛出一个检查过的异常?你特别想在什么条件下抛出它? (3认同)