【发布时间】:2015-07-01 21:47:46
【问题描述】:
Java 支持检查异常,但在声明站点默认情况下是不变的。 Scala 允许使用+T 和-T 进行方差注释,但没有检查异常。我目前正在设计/实现一种应该同时支持这两种语言的语言,所以我想知道方差如何适用于已检查的异常。
示例:
interface Function[-P1, +R, E]
{
public R apply(P1 par1) throws E
}
E 应该有什么样的方差注解,或者它是不变的?此外,如果它具有相反的方差注释,我是否应该生成错误,类似于在 Scala 中使用协变类型参数作为函数参数类型时会出现错误?
【问题讨论】:
标签: java scala generics variance generic-type-argument