将数组中的变量直接设置到Java中的变量列表中
我有一个Java方法,它返回一个双精度数组。然后,我想将这些值存储在调用函数的各个变量中。在Java中是否有一种优雅的方法可以做到这一点 我可以这样写:将数组中的变量直接设置到Java中的变量列表中,java,function,return,Java,Function,Return,我有一个Java方法,它返回一个双精度数组。然后,我想将这些值存储在调用函数的各个变量中。在Java中是否有一种优雅的方法可以做到这一点 我可以这样写: double[] returnValues = calculateSomeDoubles(); double firstVar = returnValues[0]; double secondVar = returnValues[1]; 我只是想知道有没有办法把它压缩成一行?比如: (firstVar, secondVar) = calcu
double[] returnValues = calculateSomeDoubles();
double firstVar = returnValues[0];
double secondVar = returnValues[1];
我只是想知道有没有办法把它压缩成一行?比如:
(firstVar, secondVar) = calculateSomeDoubles();
当编写脚本时,这类事情非常容易,但Java的强类型意味着这可能是不可能的。唯一的方法是使用反射,前提是您预先知道方法“calculateSomeDouble”将返回多少项 需要的变化。但正如您所看到的,还有更多的代码需要编写 所以提出的问题是?你想用这个做自动化的东西吗?还是为了节省开发时间(避免复制/粘贴) 如果您想要自动化某些任务(比如在运行时填充对象),那么执行反射调用并编写方法是值得的 您需要设置该值,而不仅仅是打印它 客户端调用应该如下所示
SomeUtility.fill( myObject , withDoublesFromMethod() );
基本上不,这是不可能的 您必须返回一个包含这些值的对象
MyObject myObject = calculateMyObject();
当你没有得到2个双倍值时,你可以使用callbyreference调用你的方法
void methode(double[] array)
您可以提交一个长度为2的数组,并将值放在methode中
或者,如果返回的值可以更改,则返回集合
List methode()
我不是像这样返回值的朋友
double[] methode()
当您使用列表或集合时,方法与处理数组时一样是静态的。您可以在其他项目中更好地重用该方法。我的第一反应是怀疑您这样做的动机。如果您的程序中有一组相关的双工,为什么不将它们存储在列表中 如果你是,你可以这样做:
List<Double> myVars = Arrays.asList(calculateSomeDoubles());
List myVars=Arrays.asList(calculateSomeDoubles());
但是,如果必须将它们存储在单个变量中,则不能在一行中干净地完成。我建议您不要使用所建议的一些基于反射的解决方案。按照您最初的建议,简单地用多行写出您的作业可能会更好。我考虑过使用列表作为返回值(或类似的东西,可能是HashMap),但我认为为了可读性,我最终会将它们分配给更好的名称,因此更容易返回一个双精度数组。