作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我的 Java 代码与此类似,其中包含许多 if-else 语句:
if(...){
Object1 obj = new Object1();
String text = obj.getString();
int number = obj.getInt();
//do something
}else if (...){
Object2 obj = new Object2();
String text = obj.getString();
int number = obj.getInt();
//do something
...
是否有可能以某种方式以这种方式编写代码:
<something> obj; //<- ?
if(..)
obj = new Object1;
else if(..)
obj = new Object2;
...
String text = obj.getString();
int number = obj.getInt();
//do something
感谢您的帮助。
PS:你可以用C++写解决方案;我会为 java 弄清楚
PS(2): 抱歉英语不好-这不是我的主要语言
最佳答案
上面的替代方法是接口(interface)
public interface Ibase {
String getString();
int getInt();
}
然后您的两个对象将实现该接口(interface),确保它们具有可用的那些方法。
public class Object1 implements IBase {
public String getString() {
return "string";
}
public int getInt() {
return 0;
}
}
然后像上面一样可以使用
IBase object = null
if(option)
object = new Object1()
else
object = new Object2();
object.getString();
object.getInt();
将接口(interface)视为子类必须遵守的契约。
关于java - 初始化对象并稍后根据 if 语句中的值创建它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14138385/
我正在编写一个插件,有一个ajax调用向用户显示数据。 如果用户想在ajax成功时添加一些js?他可以从他的 js 脚本中做到这一点吗,比如定位这个 ajax 成功事件。 例如: $(documen
我有 html 代码,例如 - x 最初插入 div 'insert_calendar_eda_form'。 Javascript代码 calendar_eda_add
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 3 年前。 Improve this qu
我已经使用命令 sudo start myservice 启动了一个 upstart 服务。我想要一种方法,以便稍后我(或任何人)可以检查该服务是否已启动并正在运行。检查它的命令是什么? 最佳答案 找
我是一名优秀的程序员,十分优秀!