定义List字段而不引用特定的类型参数

时间:2018-01-30 17:24:06

标签: java generics

如何在不引用特定类型参数的情况下如下定义List字段:

private final List<? extends A<B, ?[0] extends C, ?[1] extends D<B, ?[0]>>> list = new ArrayList<>();

其中:

  • A是抽象类;
  • B是类中定义的泛型类型;
  • C是一个抽象类;
  • D是一个抽象类。

1 个答案:

答案 0 :(得分:0)

我最接近的是:

abstract class ClassA<B, C, F extends C, G extends ClassD<B, F>> {}

abstract class ClassC{}

class SubtypeC extends ClassC{}

abstract class ClassD<X, Y>{}

class SubtypeD extends ClassD<String, SubtypeC>{}

class Main{
    private final List<? extends A<String, ClassC, SubtypeC, SubtypeD>> list = new ArrayList<>();
}

我不知道有可能使用类型参数定义泛型类型(类似class ClassA<D<B, F>> - 这里的D需要是一个类)。