gpt4 book ai didi

java - 动态参数为 "or"

转载 作者:行者123 更新时间:2023-12-01 17:50:10 25 4
gpt4 key购买 nike

我想知道是否可以做这样的事情:

public String gE(EditText text || TextInputEditText text || BootstrapEditText text){
return text.getText().toString();
}

感知“或”的使用,参数基本上具有相同的属性,但我想要一种可以传递一个或另一个的方法,而不必为每个元素创建一个。 java 可以做到这一点吗?

最佳答案

您可以传递一个对象,然后检查其类型。

public String gE(Object o) {
if(o instanceof TextInputEditText) {
return ((TextInputEditText) o).getText().toString();
}
else if(o instanceof BootstrapEditText) {
return ((BootstrapEditText) o).getText().toString();
}
else if(o instanceof EditText) {
return ((EditText) o).getText().toString();
}
return null;
}

确保基类是最后检查的条件,否则扩展类的代码将变得无法访问。例如 - 如果您检查 TextInputEditText EditText之后的状况条件下,对于 EditText 它将始终返回 true条件,因此永远不会检查 TextInputEditText健康)状况。这是因为TextInputEditText extends EditText .

更新 - 使用 instanceof被认为是不好的做法。因此,请改用函数重载。喜欢-

public String gE(TextInputEditText text) {
return text.getText().toString();
}

public String gE(BootstrapEditText text) {
return text.getText().toString();
}

public String gE(EditText text) {
return text.getText().toString();
}

关于java - 动态参数为 "or",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51116973/

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