【问题标题】:Can I require a generic parameter to have generic parameters?我可以要求泛型参数具有泛型参数吗?
【发布时间】:2018-12-29 19:30:16
【问题描述】:

我想写一个如下所示的类:

public class SomeClass<T<?>> {
    T<String> someField;
    // ...
}

但这不是有效的 Java。有没有办法告诉Java泛型参数T必须是一个接受一个泛型参数的类,例如ListArrayListSupplierConsumer

【问题讨论】:

  • 你认为你为什么要这样做?
  • 您可能需要分享您要解决的问题。您尝试做的事情在技术上是不可能的,而且您不想要一个简单的“不可能”的答案。
  • 否,但您可以指定您的 T 类必须满足的一些条件,例如:T extends X implements Z, W
  • 听起来你需要一个标记接口,所有有效的 T 类型参数都应该实现。

标签: java generics syntax


【解决方案1】:

总之,不,没有。您可以限制T 扩展某些类或实现某些接口,但不能将其限制为泛型类本身。

【讨论】:

    【解决方案2】:

    Java 中没有高级类型。你需要 Scala(或 Haskell 或 Rust)来处理这类事情。

    【讨论】:

      猜你喜欢
      • 2010-12-09
      • 1970-01-01
      • 2022-01-04
      • 1970-01-01
      • 1970-01-01
      • 2020-11-27
      • 2017-10-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多