在Java中,如何区分实现相同接口的类?

use*_*804 3 java generics interface

假设我们有以下接口:

interface Addable {
    Addable add (Addable element);
}
Run Code Online (Sandbox Code Playgroud)

现在我想声明两个类,例如MyListMyArray实现上述接口。我怎样才能做到这一点,但又防止将MyArray对象添加到 a 中MyList,反之亦然?

if有没有办法在没有声明的情况下做到这一点instanceof

Ale*_*dov 5

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;
    }
}
Run Code Online (Sandbox Code Playgroud)