繁体   English   中英

将数组中的变量直接设置为Java中的变量列表

[英]Set Variable from an Array directly into a List of Variables in Java

我有一个Java方法,它返回一个双精度数组。 然后,我想将这些值存储在调用函数的各个变量中。 在Java中是否有一种优雅的方法可以做到这一点。

我可以这样写:

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

我只是想知道是否有某种方法可以将其压缩为一行? 就像是:

(firstVar, secondVar) = calculateSomeDoubles();

在编写脚本时,这种类型的事情非常容易,但是更强大的Java类型意味着这不可能。

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

您必须返回一个包含值的对象。

MyObject myObject = calculateMyObject();

唯一的方法是使用反射,前提是您预先知道方法“ calculateSomeDouble”将返回多少项。

对此需要变型。 但是如您所见,还有更多代码要编写。

那么提出的问题是? 您是否想要此自动化的东西? 还是节省开发时间(避免复制/粘贴)?

如果要自动化某些任务(例如在运行时填充对象),则值得进行反射调用并编写方法。

您将需要设置值,而不仅仅是打印它。

客户电话应该看起来像

 SomeUtility.fill( myObject , withDoublesFromMethod() );

如果没有,您将返回两个double值,则可以通过引用调用您的方法usig调用

void methode(double[] array)

您可以提交长度为2的数组,并将值iside放在方法中。

或者,如果返回的值可以更改,则返回一个Collection。

List methode()

我不是返回像这样的价值观的朋友

double[] methode()

使用列表或集合时,方法在处理数组时是静态的。 您可以更好地在其他项目中重用该方法。

我的第一个直觉是质疑您这样做的动机。 如果您的程序中有一组相关的双打,为什么不将它们存储在列表中?

如果您当时可以执行以下操作:

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

但是,如果您必须将它们存储在单个变量中,则不能在一开始就干净地完成它们。 我建议您不要使用建议的一些基于反射的解决方案。 如您最初建议的那样,简单地将您的作业写成多行可能会更好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM