我有兩個具有一些共同屬性的類:public class A { private String a;private String b;private String c;// setters & getters}public class B {private String a;private String b;private String c;// setters & getters}沒有租用,我想創建一個可以接受這兩個類之一的通用方法public <T> void myMethod(T object){object.getC(); // "c" attribute of class A and B}我如何在 Java 8 中執行此操作
3 回答

慕標5832272
TA貢獻1966條經驗 獲得超4個贊
您可以定義這樣的接口:
interface ISomeInterfaceToGetC {
String getC();
}
實現很簡單:
class A implements ISomeInterfaceToGetC {
@Override
public String getC(){
return c;
}
}
然后你的兩個類都可以實現這個接口,而不是傳遞T object你可以傳遞ISomeInterfaceToGetC implementationObject和調用implementationObject.getC();它將返回你的字符串。

www說
TA貢獻1775條經驗 獲得超8個贊
為什么不直接使用單獨的 POJO 類,它既可以提供通用代碼,又不需要繼承或實現。
class Data{
private String a;
public String getA(){
return this.a;
}
/* TO DO */
}
class A {
private Data data;
/* TO DO */
}
class B {
private Data data;
/* TO DO */
}
public void myMethod(Data data){
data.getA();
}
添加回答
舉報
0/150
提交
取消