gpt4 book ai didi

Java 形式化类型参数定义(泛型)

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:34:11 24 4
gpt4 key购买 nike

我想定义一个泛型,它的实际类型参数只能是

  1. 数字原始包装类之一(LongIntegerFloatDouble)
  2. 字符串

我可以用这样的定义来满足第一个要求

public final class MyClass<T extends Number> {
// Implementation omitted
}

但是我想不出怎么去见他们两个。我怀疑这实际上是不可能的,因为 AFAIK 在定义正式类型参数时无法指定“或”语义,尽管您可以使用诸如

之类的定义来指定“和”语义
public final class MyClass<T extends Runnable & Serializable > {
// Implementation omitted
}

干杯,唐

最佳答案

Java 泛型不支持联合类型(这个参数可以是 A OR B)。

在一些可能对某些人感兴趣的相关说明中,如果您想实现多个限制,它确实支持多个边界。这是 Java generics tutorial 中提到的 JDK 的示例:

public static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll)

关于Java 形式化类型参数定义(泛型),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/360766/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com