如何在一行中从数组中分配变量

时间:2018-06-10 14:49:39

标签: java arrays variable-assignment

是否有一种优雅的方式来执行以下操作:let int [] makeArray()是一个方法 返回长度为2的整数数组。然后

int[] t = makeArray(); int ta = t[0]; tb = t[1];

Nicer将是

int[] {ta,tb} = makeArray();

2 个答案:

答案 0 :(得分:0)

除非makeArray()在每次调用后返回相同的数组(我假设它不是由于其名称),否则没有。但是,如果是这种情况,您可以写:

int ta = makeArray()[0];
int tb = makeArray()[1];

否则,需要缓存从makeArray()返回的值,以便可以使用它来设置其后面的变量。

答案 1 :(得分:-1)

你所描述的是返回多个值,这样会很好isn't supported in java, you have to wrap them in an object

但是根据您的使用情况,您可以使用lambdas重构一些优雅的东西,例如:以下我已重新排列,以便makeArray成为withDataArray,然后传递一个lambda来处理数组数据。你也可以轻松地获得回报。将BiConsumer更改为BiFunction并使用withDataArray返回BiFunction

的结果
public static void main(String[] args){

    withDataArray( (a,b) -> {
        System.out.println(a+b);
    });

}

public static void withDataArray(BiConsumer<Integer, Integer> applier){
    applier.accept(1,2);
}