我不明白 Java 语言规范中的这段话:
交集类型的值是那些作为值的对象 所有类型 Ti 的 1 ≤ i ≤ n。
据我所知,直接声明变量的类型是交集类型是不可能的。
我看到使用交集类型的地方是在泛型类的声明中,但这似乎与交集类型的值无关。 那么这里所说的交集类型的值指的是什么?
此外,“那些对象是所有类型Ti的值”是什么意思?
public class IntersectionDemo {
interface T1 {
}
interface T2 {
}
static <T extends T1 & T2> void foo(T t) {
}
static class V implements T1, T2 {
}
public static void main(String[] args) {
foo(new V());
}
}
这里变量t具有类型T1和T2的交集类型,并且只能接受对同时实现T1和T2的类型V的值的引用。