這是我的整體工作流程。首先創建一個接口:Java中的界面敏感操作
public interface foo {
void bar(Baz b);
}
然後做出,例如,與不同對象向量都實現上述接口:
myVector.add(new Ex); //both Ex and Why implement foo.
myVector.add(new Why);
最後,使用該接口:
for(int i=0; i<myVector.size(); i++) {
myVector.get(i).bar(b);
}
但是,由於顯而易見的原因,這會產生編譯時錯誤:
The method bar() is undefined for the type Object
因爲Ex和爲什麼不相關,鑄造將不起作用。嘗試趕上鑄造前,然後爲什麼是一個可怕的解決方法。讓Ex和爲什麼擴展Bar_doers也聽起來都不簡單,因爲這樣做會消除接口。
如何執行關心Object是否實現給定接口的操作,而不是某個對象是否爲給定類?
鑄造成'foo'不可能爲什麼? –
如果你已經編寫了接口,你可以在接口中添加foo()方法。那麼它應該工作。 – Pankaj
供參考:所有類型都以大寫字母開頭是慣用的;所以它應該是'Foo',而不是你的界面的'foo'。 –