是否可以在java泛型类中包含可变数量的Element类型

Rhe*_*eel 10 java generics

我想知道是否有可能有这样的事情:

public class foo<T...>
Run Code Online (Sandbox Code Playgroud)

所以你可以像上课那样打电话

Foo<Object0>
Foo<Object0, Object1>
Foo<Object0, Object1, Object2>
Run Code Online (Sandbox Code Playgroud)

使用Object 0,1和2两种不同的类型,如Integer,Float,String等.这是可能的,还是我必须为每种类型的泛型类型编写一个类?如果可以,我将如何处理不同的类型?

nak*_*spy 5

不,你不能拥有它.你能做的最好的就是public class Foo<T extends SomeClassOrInterface>.因此,在你的榜样Integer,并Float可以定义public class Foo<T extends Number>.

您还可以指定T必须实现多个接口.

语法public class Foo<T extends SomeInterface1 & SomeInterface2>有效,&有意义AND.

不幸的是,public class Foo<T extends SomeInterface1 | SomeInterface2>带有|意义的语法OR是不可能的.