gpt4 book ai didi

java - 初始化对象并稍后根据 if 语句中的值创建它

转载 作者:太空狗 更新时间:2023-10-29 19:59:17 26 4
gpt4 key购买 nike

我的 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/

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