gpt4 book ai didi

java - 如何在同一个方法中返回不同的对象?

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

Need to return differnent objects in same method?is it Possible to return?

public class Smoketest(){
protected Object getLabTopology() {
if(labTopology == null) {
return labTopologyAbstarct;
} else {
return labTopology;
}
}
}

public test extends Smoketest()
{

getLabTopology();
}

//需要不强制转换直接操作,可以吗?

最佳答案

如果您想从方法返回某些内容,方法签名将包括返回对象的类型。这可以是任何有效的 Java 类型。

所有对象的公共(public)父类(super class)是类Object。这就是为什么您可以从使用 Object 作为其返回类型声明的方法中返回任何内容。一般来说,如果消费者看到从方法返回一个对象,他们就无能为力。

考虑以下示例:

public Fruit getFruit() {
return fruit;
}

在这里,您可以退回任何水果。它可以是 Fruit,也可以是任何扩展它的对象,例如 AppleBanana。消费者会更喜欢这种返回类型,因为它是特定的。

现在,您知道您可以从此方法返回一个Fruit。您不知道的是:它到底是什么类型的水果。但你知道的是,你可以用该水果做任何可以用所有水果做的事情,例如吃它:

public class Fruit {

public void eat() {
System.out.println("Mhh, tasty!")
}
}

如果您想返回不同类的对象,请尝试引入一个通用的父类(super class)或接口(interface)来提取共享数据或操作。如果找不到,请编写两个单独的方法,每个方法返回其独立的对象。

此外,您还可以编写一个包装类来封装返回的对象。该类可以容纳多个对象。

public Result getResult() {
return new Result(a, b);
}

public class Result {
private A a;
private B b;

// remainder ommitted
}

关于java - 如何在同一个方法中返回不同的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55434762/

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