为什么这段代码会在第19行出错?

时间:2015-09-15 08:16:56

标签: java

为什么此代码会在行System.out.println(resultaat[i]); : 'The type of the expression must be an array type but it resolved to ArrayList<Integer>'上显示错误:

import java.util.Scanner;
import java.util.ArrayList;

public class Binairgenerator {

    public static void main (String[] args){
        Scanner  input = new Scanner(System.in);
        ArrayList<Integer> resultaat = new ArrayList<>();

        int number = input.nextInt();
        int i;



        for (i = 0; i < number; i++){
            if ((number% 2 == 0)) {
            resultaat.add(0);
            number = number/2;
            System.out.println(resultaat[i]);

        }
        else {
            System.out.println("maar het is een oneven getal");
            number =- 1;
        }
        }

    }





}

1 个答案:

答案 0 :(得分:1)

请注意以下这一行:

ArrayList<Integer> resultaat = new ArrayList<>();

resultaat不是数组,而是对ArrayList类实例的引用。

要访问ArrayList内的项目,您应该使用get(int index)方法。

恢复:将System.out.println(resultaat[i]);替换为System.out.println(resultaat.get(i));