首先,我只是把我的示例代碼。有一個方法接受不同的對象作爲參數
public class Shape {
public String colour;
public Shape(String colour) {
this.colour = colour;
}
}
public class Car {
public String colour;
public Car (String colour) {
this.colour = colour;
}
}
public class Colour {
public static String getColour(Object item) {
return item.**colour**;
}
}
我已閱讀了與此相關的其他問題,但我似乎無法理解。我發現他們的原始代碼對於我來說太複雜了。所以我試圖儘可能簡化代碼。無論如何,我希望getColour接受Shape和Car對象。如果我像我在我的例子中那樣使用Object,粗體的「顏色」被認爲是錯誤的。我得到的錯誤是「顏色無法解析或不是字段」。怎麼了?
另外,我聽說過很多「靜態方法很糟糕」等等,這是一個不好的例子嗎?因爲我發現如果我不使它成爲靜態的,那麼我需要在Shape和Car類中複製getColour方法。如果我應該避免靜態方法,那麼請建議另一種方法來做到這一點。
我建議讓這兩個類都實現一個類似'Colourable'的接口,然後您可以使用'Colourable'作爲參數而不是Object。 – Poriferous
謝謝你們。希望我可以檢查所有答案是有用的。 – fossdeep