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

generic interface that only allows objects that implement other interfaces

我有一个接口 A,并希望编写一个 通用 接口 B,以便实现 [=12] 的任何 T =] 还必须同时实现 AComparableA 当前不是通用接口。

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

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

但这似乎不起作用...任何人都可以指出我正确的方向吗?

我不认为这与已链接的问题重复。

只需让 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;
    }
}

你要找的是multi-bounded generic types:

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

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