[英]Java - Passing an array directly into the constructor, not as a variable
[英]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.