我有两个具有一些共同属性的类: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
提交
取消