有时您想从一个函数返回多个值。 这通常在Java中如何完成?
一种选择是使用数组,例如返回列表或元组的Python代码段:
value, success = read_unreliably()
if success:
print value
另一个选择是返回哈希/字典,如下面的JavaScript示例:
var result = readUnreliably()
if (result.success) {
alert(value);
}
还有一种方法就是为此目的创建一个自定义对象,例如以下Java示例:
ReadUnreliablyResult result = readUnreliably()
if (result.getSuccess()) {
System.out.println(result.getValue());
}
当然,您也可以只使用一些全局变量来存储所需的内容,而不用传递东西,但是我们只能说这不是一种选择。
“真正的” java人真的会遇到使用公共获取器和设置器来隐藏诸如此类的内部小类上的字段的麻烦吗?只是好奇。
—
克里斯·法默
是的,大多数都可以。由于许多框架都希望使用JavaBean标准,因此您可能会后悔没有getter和setter。无论如何,您的IDE都会为您生成它们。
—
埃里克·威尔逊
或者,您也可以根据YAGNI原则将其排除在外。但这似乎并不像人们期望的那样频繁。
—
MatrixFrog 2011年
@FarmBoy:我想我对bean等了解,但是OP暗示这只是一个一次性类,旨在返回多个值。
—
克里斯·法默
@ChrisFarmer我想在这种情况下,我从未见过“真正的” Java程序员为此目的创建类。
—
埃里克·威尔逊