首页 > 解决方案 > Java模板接口扩展问题

问题描述

我想做这样的事情,但 IDE 告诉我“重复类”。

public class Test {
    class A1 {} class B1{} class B2{}
    interface IParent<A, B> {
        A toA(B b);
    }
    interface IChild extends 
            IParent<A1, B1>,
            IParent<A1, B2>
    {}
}

所以我改变了一个更丑的方式,但仍然无法工作,errorMsg:“两种方法都有相同的擦除,但都没有覆盖另一个”

public class Test {
    class A1 {} class B1{} class B2{}
    interface IParent<A, B> {
        A toA(B b);
    }
    interface IParent1<A, B> {
        A toA(B b);
    }
    interface IChild extends
            IParent<A1, B1>,
            IParent1<A1, B2>
    {}
}

感谢您的帮助,真实情况就像

public class Test {
    class A1 {} class B1{} class B2{} class B3{}
    class AA1 {} class BB1{}
    interface IA1 {
        A1 toA(B1 b);
        A1 toA(B2 b);
        A1 toA(B3 b);

        boolean judge(A1 a, B1 b);
        boolean judge(A1 a, B2 b);
        boolean judge(A1 a, B3 b);
        
        A1 xx(A1 a, B1 b);
        A1 xx(A1 a, B2 b);
        A1 xx(A1 a, B3 b);
        // more method like above...
    }
    interface IAA1 {
        AA1 toA(BB1 b);
        boolean judge(AA1 a, BB1 b);
        AA1 xx(AA1 a, BB1 b);
        // more method like above...
    }
    // more class and interface like above
}

标签: javatemplatesextending

解决方案


推荐阅读