java - 在Java中,如何区分实现相同接口(interface)的类?

标签 java generics interface

假设我们有以下界面:

interface Addable {
    Addable add (Addable element);
}

现在我想声明两个实现上述接口(interface)的类,比如MyListMyArray。我怎样才能做到这一点,同时防止将 MyArray 对象添加到 MyList 中,反之亦然?

没有 if 语句和 instanceof 有没有办法做到这一点?

最佳答案

interface Addable<T extends Addable<T>> {
    T add (T element);
}

class MyList  implements Addable<MyList> {
    public MyList add(MyList element) {
        return null;
    }
}

class MyArray   implements Addable<MyArray> {
    public MyArray add(MyArray element) {
        return null;
    }
}

关于java - 在Java中,如何区分实现相同接口(interface)的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12331689/

相关文章:

c# - 自定义 Linq 扩展语法

java - Spring Boot 中的 ManyToMany 映射问题

java - 在 Java 中存储国家代码、名称和大陆的最佳方式

java - 在 UI 线程和后台网络线程之间交换消息

java - 在线程中计数

swift - 无法在 Swift 中声明递归泛型类型

java - 用另一种泛型类型替换泛型类型的快捷方式?

Typescript 接口(interface)通用属性名称

oop - 'Strategy Design Pattern' 不就是多态的基本用途吗?

java - 一个接口(interface)类可以被多个类实现吗?