1.18 不分配变量就返回数组 | Java Debug 笔记

121 阅读1分钟

本文正在参加「Java主题月 - Java Debug笔记活动」,详情查看 活动链接

Debug 笔记 <不分配变量就返回数组 >

提问

java中有什么方法可以返回新数组而不先将其分配给变量?

这是我的一个例子:

public class Data {
    private int a;
    private int b;
    private int c;
    private int d;
    public int[] getData() {
        int[] data = { a, b, c, d };
        return data;
    }
}

我一直想做这样的事情,但是偏偏不起作用,如下面的代码所示:

public int[] getData() {
    return {a, b, c, d};
}

回答一:

即使您没有将其分配给变量,您仍然需要创建该数组。试试用这串代码来调试你的程序:

public int[] getData() {
    return new int[] {a,b,c,d};
}

您的代码示例无效,因为编译器一方面仍然需要知道您要尝试通过静态初始化创建的类型{}。

回答二:

您正在构造函数返回的对象,以下代码应该可以解决您的问题。

public int[] getData() {
    return new int[]{a,b,c,d};
}

回答三:

试试我的这串代码,来解决您的问题:

public int[] getData() {
    return new int[]{a,b,c,d};
}

回答四:

或者这样使用,想必会有更好的效果:

return new Integer[] {a,b,c,d}; // or
return new int[] {a,b,c,d};

回答五:

您可以试试我的这个代码案例,来调试你的程序,具体代码如下:

public class CentsToDollars {

    public static int[] getCentsToDollars(int cents) {
        return new int[] { cents / 100, cents % 100 };
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan = new Scanner(System.in);
        int cents;
        System.out.print("Input the cents: ");
        cents = scan.nextInt();
        int[] result = getCentsToDollars(cents);
        System.out.println("That is " + result[0] + " dollars and " + result[1] + " cents");
        scan.close();
    }
}

文章翻译自Stack Overflow :stackoverflow.com/questions/9…