我有一个Java方法,它返回double数组。然后我想在各个变量这些值存储在调用函数。有没有在Java中这样做的一种优雅的方式。

我可以写为这样:

double[] returnValues = calculateSomeDoubles();
double firstVar  = returnValues[0];
double secondVar = returnValues[1];

我只是想知道是否有压缩下来,一条线路的一些方法?是这样的:

(firstVar, secondVar) = calculateSomeDoubles();

这类型的东西是很容易的脚本时,但Java的更强的类型意味着它可能是不可能的。

有帮助吗?

解决方案

基本上没有,这是不可能的。

您将不得不返回包含值的对象。

MyObject myObject = calculateMyObject();

其他提示

在唯一的办法就是使用反射,授予您知道前期有多少项目法“calculateSomeDouble”将返回。

的的 将需要他们。但是当你看到有更多的代码。

所以这提出了一个问题是什么?你想这对于自动化的东西吗?或以节省时间用于开发(无需复制/粘贴)?

如果要自动一些任务(如填充运行时的对象),那么这是值得做的反射呼叫和写入方法。

您将需要设置的值,而不是只打印。

在客户端呼叫应该像

 SomeUtility.fill( myObject , withDoublesFromMethod() );

当你没有,你得到2个值来替你可以调用参考您的梅索德USIG通话

void methode(double[] array)

可以提交与长度为2一个阵列并把值iside的梅索德。

,或者返回如果返回值可以改变的集合。

List methode()

IA米不返回值的朋友等

double[] methode()

在您使用阵列处理当您使用词典或类别的梅索德是催产素为静态。您可以更好地重用了Methode在其他项目。

我的第一反应是怀疑你的动机做这样的事情。如果你有一组在你的程序的相关双打的,你为什么不将它们存储在一个列表?

如果你是,你可以做这样的事情:

List<Double> myVars = Arrays.asList(calculateSomeDoubles());

但是,如果你必须将它们存储在单个变量不能干净利落地一个行来完成。我劝你的的使用一些基于反射的解决方案被提出。这很可能是更好的多行简单地写出来你的任务,你首先提出。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top