6
的对象比方说,我有一个接口在Java中:类实现接口应该能够只添加同一类
interface I {
void add(I foo);
}
,以及两个类C和d实现此接口。
有没有什么办法可以修改接口这样,我只能这样做:
C c = new C();
c.add(new C());
,但不
c.add(new D());
?
我对考试这个问题,但我唯一的想法就是使用的instanceof运营商在方法的定义:
class C implements I {
public void add(I foo) {
if (foo instanceof C) {
System.out.println("instance of C");
} else {
System.out.println("another instance");
}
}
}
不过,我不知道如何修改界面这样我产生相同的效果。
感谢
这种方法不是简单的。例如,你仍然可以做一些事情,比如'D类实现I'。然而,这是一个非常强烈的意图指标,违反上述规定的开发者应该得到他们所得到的任何结果。 –
Dunes
为了避免关于非参数化类型的警告,声明应该是'interface I>'。 –
@波希米亚感谢! – Claudiu