首页 > 解决方案 > 具有一些共同属性但没有遗产的两个类

问题描述

我有两个具有一些共同属性的类:

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
}

没有hiretage,我想创建一个可以接受这两个类之一的通用方法

public <T> void myMethod(T object){
object.getC(); // "c" attribute of class A and B
}

我怎么能在java 8中做到这一点

标签: java

解决方案


您可以定义如下接口:

interface ISomeInterfaceToGetC {
    String getC();
}

实现很简单:

class A implements ISomeInterfaceToGetC {
    @Override
    public String getC(){
        return c;
    }
}

然后你的两个类都可以实现这个接口,而不是传递T object你可以传递ISomeInterfaceToGetC implementationObject和调用implementationObject.getC();它将返回你的字符串。


推荐阅读