我想定义一个泛型类型,其实际类型参数只能是
Long,Integer,Float,Double)String我可以通过这样的定义满足第一个要求
public final class MyClass<T extends Number> {
// Implementation omitted
}
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何满足他们两个.我怀疑这实际上是不可能的,因为AFAIK在定义形式类型参数时没有办法指定"或"语义,尽管你可以使用如下的定义来指定"和"语义
public final class MyClass<T extends Runnable & Serializable > {
// Implementation omitted
}
Run Code Online (Sandbox Code Playgroud)
干杯,唐
Dav*_* L. 11
Java泛型不支持联合类型(此参数可以是A OR B).
在某些可能感兴趣的相关注释中,如果要强制执行多个限制,它确实支持多个边界.以下是Java 泛型教程中提到的JDK 示例:
public static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5920 次 |
| 最近记录: |