gpt4 book ai didi

java - 如何动态调用基类中由字符串值指定的子类方法?

转载 作者:行者123 更新时间:2023-11-30 01:33:30 29 4
gpt4 key购买 nike

这里是试过的代码。

public class ChildB extends BaseA {
public void showMessage() {
Log.d("myTest", "Here is ChildB.");
}
}


public class ChildC extends BaseA {
public void showMessage() {
Log.d("myTest", "Here is ChildC.");
}
}


public class NormalD {
public void showMessage() {
Log.d("myTest", "Here is NormalD.");
}
}


public class BaseA {
public void showMessage(String sSpecifiedChild) {
sSpecifiedChild.showMessage(); <== I'd like to invoke a child method specified by String value.
}
}


public class MainActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_jelly_notification);

BaseA baseA = new BaseA();

baseA.showMessage("ChildC");
baseA.showMessage("ChildB");
baseA.showMessage("NormalD"); <== occurs an exception because "NormalD" is not child of BaseA.
}
}

期望的结果是:
这是 ChildC。
这是ChildB。

发生了NormalD的异常。

最佳答案

您可以使用基类中的某些类或@class 属性参数来转换对象。使用该属性准备对象,对于任何派生类,您可以使用相同的函数,它将调用。你可以have a look at it

关于java - 如何动态调用基类中由字符串值指定的子类方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35422685/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com