我认为我的问题不是很清楚 :) 这是我的问题(更详细):
我有几个对象(假设是 objA、objB、objC 等),它们是来自不同类的实例(分别假设是 ClassA、ClassB、ClassC...)。
这些对象 A、B、C...调用同一个对象(我们称它为 jsonConnector,JsonConnector 类的实例)然后我希望这个 jsonConnector 调用它具有的对象的 updateUI() 方法已创建。
我的 ClassX(ClassA、ClassB 等)类中的代码:
JsonConnector jsonConnector = new JsonConnector(this);
我的 JsonConnector 类的构造函数:
private Object callingObject;
public JsonConnector(Object aCallingObject) {
callingObject = aCallingObject
}
在我的 JsonConnector 类中的某个地方,我想做:
aCallingObject.updateUI();
但是我有一个编译错误“方法 updateUI() undefined object 类型”
我能做到:
String callingClassName = callingObject.getClass().getSimpleName();
if(callingClassName == "ClassA")
{
((ClassA)aCallingObject).updateUI();
}
else if(callingClassName == "ClassB")
{
((ClassB)aCallingObject).updateUI();
}
else if...
但我不想写 100 个“else if”语句!
有人知道我该怎么做吗?
谢谢!!!
最佳答案
我认为您可以针对接口(interface)进行编程。
public interface GuiUpdate
{
void UpdateUI() ;
}
//do the same for classes that updates a gui.
public class ClassA implements GuiUpdate
您可以控制 JsonConnector 吗?如果是这样,注入(inject)对象引用:
public JsonConnector(GuiUpdate updater)
补充一点,这意味着您可以在后续方法中简单地执行以下操作,最好的多态性和抽象:
updater.UpdateUI() ;
关于Java : how to call methods with the same name in different objects instantiated from different classes?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16319077/