如何使用自引用类型返回值定义方法

时间:2018-02-07 09:56:32

标签: java generics

想象一下,您有以下界面:

public interface Selfreferencing<T extends Selfreferencing<T, C>, C extends Comparable<C>> {

}

以及以下Util类:

public class SelfreferencingUtil {
    public static <T,C> Selfreferencing<T, C> selfreferencingUtil(List<T> input) {
        ...
    }
}

如何定义selfreferencingUtil方法类型以返回类型为

的Object
Selfreferencing<T, C>

以上代码无法使用以下消息进行编译:

type argument T is not within bounds of type-variable T

1 个答案:

答案 0 :(得分:4)

静态方法的类型变量必须与Selfreferencing的类型边界具有相同的类型边界:

class SelfreferencingUtil {
    public static <T extends Selfreferencing<T, C>,C extends Comparable<C>> Selfreferencing<T, C> selfreferencingUtil(List<T> input) {
      ...
    }
}