无法返回ArrayList Java中的对象

时间:2017-11-01 18:42:27

标签: java binary

我相信它与我的构造函数有关,但我不完全确定。 public String toString()应该遍历数组并返回结果。 这会将十进制转换为二进制。

public class DNumber {

    ArrayList<Digit> binary = new ArrayList<Digit>();

    /**
     * Constructor for objects of class DNumber
     */
    public DNumber() {
        ArrayList<Digit> binary = new ArrayList<>();
        Digit num = new Digit(0);
        binary.add(0, num);
    }

    public DNumber(int val) {
        ArrayList<Digit> binary = new ArrayList<>();
        int num = val;
        while (num > 0) {
            Digit bin = new Digit(num % 2);
            num /= 2;
            binary.add(0, bin);
        }
    }

    /**
     * An example of a method - replace this comment with your own
     *
     * @param y a sample parameter for a method
     * @return the sum of x and y
     */
    public String toString() {
        ArrayList<Digit> binary = new ArrayList<>();
        String s = "";
        for (Digit d : binary) {
            s = s + d.toString();
        }

        return s;
    }
}

2 个答案:

答案 0 :(得分:0)

您正在为每个操作使用不同的binary列表,请尝试以下操作:

public class DNumber {

ArrayList<Digit> binary = new ArrayList<Digit>();

/**
 * Constructor for objects of class DNumber
 */
public DNumber() {
    Digit num = new Digit(0);
    binary.add(0, num);
}

public DNumber(int val) {
    int num = val;
    while (num > 0) {
        Digit bin = new Digit(num % 2);
        num /= 2;
        binary.add(0, bin);
    }
}

/**
 * An example of a method - replace this comment with your own
 *
 * @param y a sample parameter for a method
 * @return the sum of x and y
 */
public String toString() {
    String s = "";
    for (Digit d : binary) {
        s = s + d.toString();
    }

    return s;
}

}

答案 1 :(得分:0)

在每种方法中,您都会创建一个新的JOIN pg_stat_user_tables。所以,在最后一个中,你试图迭代一个空的ArrayList。

删除方法中的所有ArrayList<Digit>

ArrayList<Digit> binary = new ArrayList<>();