通用接口,仅允许实现其他接口的对象

时间:2015-03-11 17:39:08

标签: java generics interface

我有一个界面A,并希望编写通用界面B,以便实现T的任何B也必须同时实施了AComparableA目前不是通用接口。

这可能吗?我需要制作通用的吗? 我曾希望能写出类似的东西:

public interface B<T implements Comparable, A> {}

但这似乎不起作用......有人能指出我正确的方向吗?

我不相信这与已经链接的问题重复。

2 个答案:

答案 0 :(得分:1)

只需让B扩展A和Comparable。

public interface A {
    public void methodA();
}

public interface B<T> extends A, Comparable<T> {
    public T methodB();
}

public class BImpl<T> implements B<T> {
    @Override
    public T methodB() {
        return null;
    }

    @Override
    public void methodA() {

    }

    @Override
    public int compareTo(T o) {
        return 0;
    }
}

答案 1 :(得分:1)

您在这里寻找的是multi-bounded generic types

public interface B<T extends A & Comparable> {}

请注意,如果有界类型中的任何一个是class而不是interface,则必须是extends之后定义的第一个边界。此外,您不能在多个class上使用多边界泛型类型(因为Java中没有多重继承)