嵌套泛型类型参数的参数

5

我有一个抽象类,定义如下:

public abstract class BaseClass<T extends FirstClass, U extends BaseAnother<? extends SecondClass>> {

我不想使用问号(?)并且想要使用一些通用的变量,例如 T 或者 U

我该怎么做?

1个回答

0

它是public abstract class BaseClass<X extends SecondClass, T extends FirstClass, U extends BaseAnother<X>> {,不是吗?

(我添加了X extends SecondClass)

考虑一下你将如何使用这个类型变量。当定义类时声明它的方式是将它传递给new BaseClass< /* type parameters - here */> { ... }

同时请注意,根据JLS,类型参数在类定义中的一个地方声明:

NormalClassDeclaration: ClassModifiersopt class Identifier TypeParametersopt Superopt Interfacesopt ClassBody

请参阅8.1.2. Generic Classes and Type Parameters章节中的示例:

interface ConvertibleTo<T> {
    T convert();
}
class ReprChange<T extends ConvertibleTo<S>,
                 S extends ConvertibleTo<T>> { 
    T t; 
    void set(S s) { t = s.convert();    } 
    S get()       { return t.convert(); } 
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接