题
我有一个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());
但是,如果你必须将它们存储在单个变量不能干净利落地一个行来完成。我劝你的不的使用一些基于反射的解决方案被提出。这很可能是更好的多行简单地写出来你的任务,你首先提出。
不隶属于 StackOverflow