Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 仅允许实现其他接口的对象的通用接口_Java_Generics_Interface - Fatal编程技术网

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

Java 仅允许实现其他接口的对象的通用接口,java,generics,interface,Java,Generics,Interface,我有一个接口A,并希望编写一个通用接口B,这样任何实现B的T都必须同时实现A和可比当前不是通用接口 这可能吗?我需要做一个通用的吗? 我曾希望能够写出这样的作品: public interface B<T implements Comparable, A> {} 公共接口B{} 但这似乎不起作用。。。谁能给我指出正确的方向吗 我不相信这是一个重复的问题,已被链接。只是使B扩展a和可比性 public interface A { public void methodA();

我有一个接口
A
,并希望编写一个通用接口
B
,这样任何实现
B
T
都必须同时实现
A
可比
<代码>当前不是通用接口

这可能吗?我需要做一个通用的吗? 我曾希望能够写出这样的作品:

public interface B<T implements Comparable, A> {}
公共接口B{}
但这似乎不起作用。。。谁能给我指出正确的方向吗


我不相信这是一个重复的问题,已被链接。

只是使B扩展a和可比性

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;
    }
}
公共接口A{
公共无效方法a();
}
公共接口B扩展了A,可比{
公共T方法b();
}
公共类BImpl实现B{
@凌驾
公共T方法b(){
返回null;
}
@凌驾
公开无效方法a(){
}
@凌驾
公共内部比较(TO){
返回0;
}
}

您在这里寻找的是:

公共接口B{}

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

您要找的是
B
?如果泛型类型必须是
Comparable
A
接口B实现了A,Comparable
?@Mike,你能在回答中坚持这一点,这样我可以给你一些分数吗?你确定你的意思是说
T
也实现了
B
?然后您将寻找
接口B
public interface B<T extends A & Comparable> {}