我有 2 个类:
public class A {
private String label;
public String getLabel() {
return label;
}
}
public class B {
private String label;
public String getLabel() {
return label;
}
}
然后我有另一个类,我想在其中访问这些类的标签值:
public class C {
private String label;
public C(A object) {
label = object.getLabel();
}
}
例如,上面的定义只适用于 A。我希望能够将 A 或 B 传递给 C 的构造函数。我能想到的最接近的事情是使 C 成为通用类,但随后我失去了对 getLabel() 的访问权限。我该如何继续呢?我觉得这是一个基本的设计模式,但由于我是 Java 的新手,我不知道从哪里开始。非常感谢任何帮助。
最佳答案
你可以创建一个 interface并让 A
和 B
实现它:
interface HasLabel {
String getLabel();
}
然后
public class A implements HasLabel { ... }
public class B implements HasLabel { ... }
在 C
中:
public class C {
private String label;
public C(HasLabel object) {
label = object.getLabel();
}
}
当您执行 C(HasLabel object)
时,您保证可以在参数上调用 getLabel()
,因此它允许您执行 object.getLabel ()
。
关于java - 避免为包含相同方法的不同类型定义多个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29613655/