我有2个课程:
public class A {
private String label;
public String getLabel() {
return label;
}
}
public class B {
private String label;
public String getLabel() {
return label;
}
}
Run Code Online (Sandbox Code Playgroud)
然后我有另一个类,我想访问这些类的标签值:
public class C {
private String label;
public C(A object) {
label = object.getLabel();
}
}
Run Code Online (Sandbox Code Playgroud)
例如,上面的定义仅适用于A.我希望能够将A或B传递给C的构造函数.我能想到的最接近的事情是使C成为泛型类,但后来我失去了对getLabel()的访问权限.我怎么能继续这个呢?我觉得这是一个基本的设计模式,但由于我是Java的新手,我不知道从哪里开始.任何帮助是极大的赞赏.
您可以创建一个接口并同时创建它A并B实现它:
interface HasLabel {
String getLabel();
}
Run Code Online (Sandbox Code Playgroud)
然后
public class A implements HasLabel { ... }
public class B implements HasLabel { ... }
Run Code Online (Sandbox Code Playgroud)
并在C:
public class C {
private String label;
public C(HasLabel object) {
label = object.getLabel();
}
}
Run Code Online (Sandbox Code Playgroud)
当你这样做时,C(HasLabel object)你保证getLabel()可以在参数上调用,所以它允许你这样做object.getLabel().
| 归档时间: |
|
| 查看次数: |
177 次 |
| 最近记录: |