Java 中交集类型的价值是什么?

问题描述 投票:0回答:1

我不明白 Java 语言规范中的这段话:

JLS 4.9:

交集类型的值是那些作为值的对象 所有类型 Ti 的 1 ≤ i ≤ n。

据我所知,直接声明变量的类型是交集类型是不可能的。

我看到使用交集类型的地方是在泛型类的声明中,但这似乎与交集类型的值无关。 那么这里所说的交集类型的值指的是什么?

此外,“那些对象是所有类型Ti的值”是什么意思?

java language-lawyer jls
1个回答
0
投票
考虑以下代码:

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具有类型T1T2的交集类型,并且只能接受对同时实现T1和T2的类型V的值的引用。

© www.soinside.com 2019 - 2024. All rights reserved.