gpt4 book ai didi

java - 从java中的方法返回不同类型的数据?

转载 作者:IT老高 更新时间:2023-10-28 20:21:27 24 4
gpt4 key购买 nike

public static void main(String args[]) {
myMethod(); // i am calling static method from main()
}

.

public static ? myMethod(){ // ? = what should be the return type
return value;// is String
return index;// is int
}

myMethod() 将返回 String 和 int 值。因此,从 main() 中获取这些返回值我想出了以下解决方案。

创建一个类调用ReturningValues

public class ReturningValues {
private String value;
private int index;

// getters and setters here
}

并改变 myMethod() 如下。

 public static ReturningValues myMethod() {
ReturningValues rv = new ReturningValues();
rv.setValue("value");
rv.setIndex(12);
return rv;
}

现在我的问题是,有没有更简单的方法来实现这一点?

最佳答案

我使用枚举创建各种返回类型。它不会自动定义。该实现看起来像工厂模式。

public  enum  SmartReturn {

IntegerType, DoubleType;

@SuppressWarnings("unchecked")
public <T> T comeback(String value) {
switch (this) {
case IntegerType:
return (T) Integer.valueOf(value);
case DoubleType:
return (T) Double.valueOf(value);
default:
return null;
}
}
}

单元测试:

public class MultipleReturnTypeTest {

@Test
public void returnIntegerOrString() {
Assert.assertTrue(SmartReturn.IntegerType.comeback("1") instanceof Integer);
Assert.assertTrue(SmartReturn.DoubleType.comeback("1") instanceof Double);
}

}

关于java - 从java中的方法返回不同类型的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18140964/

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