【问题标题】:What is `AnyType` in java genericsjava泛型中的`AnyType`是什么
【发布时间】:2017-03-08 10:00:16
【问题描述】:

java 中的AnyType 是什么。我应该什么时候使用它。 例如这段代码中的TestRpn<AnyType extends Comparable<AnyType>>,sn -p 什么是AnyType,它可以拥有什么样的数据(即,像Integer,Boolean)

【问题讨论】:

  • 它实际上是任何类型 ;)
  • 在问这个问题之前你研究了什么?我相当确定您的搜索引擎找到答案的速度可能比您在这里得到的要快。

标签: java


【解决方案1】:

没有名为AnyType 的预定义类型。我猜你遇到了一个命名不佳的类型参数变量。类型变量的命名约定是suggested to be single uppercase letters,以避免这种类型的混淆。

在你的情况下,TestRpn<AnyType extends Comparable<AnyType>> 应该改写为TestRpn<E extends Comparable<E>>,这反过来意味着你可以用任何类型替换为它自己的类型实现 Comparable 的 E。示例:java.lang.String 实现了Comparable<String>,因此TestRpn<String> 是上述基类型的有效参数化。

【讨论】:

  • @PieterDeBie 大多数时候,是的。有有效的反例,例如一种通过处理值上的函数将一个映射转换为另一个映射的方法。这样的方法将具有类型参数 K、V1 和 V2。
  • 确实如此。老实说,我不太喜欢这个大会。有时我有更容易理解的短类型名称。
【解决方案2】:

AnyType 实际上用在 java7+ 中。可以说它的用法和E或者T什么的一样。顾名思义,它可以处理任何类型的通用数据。 例如,当我在 Java 中实现我的通用链表时,我使用了

private Node<AnyType> head;

其中 AnyType 一词代表泛型类型 Node。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多