列表无法解决

时间:2013-12-29 14:32:58

标签: java arraylist java.util.scanner

嘿,我有一个错误“列表无法解决”。这是我的代码:

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

public class Objects {

    void inputData() {

        Objects object = new Objects();
        DaneTeleadresowe daneTeleadresowe = new DaneTeleadresowe();

        Scanner scanner1 = new Scanner(System.in);
        int ilu = scanner1.nextInt();

        Scanner scanner2 = new Scanner(System.in);

        List<String> list = new ArrayList<String>();

        for (int y=0; y<ilu; y++){
    for(int i=0;i<dataOfSomeSort.tableOfNames.length;  i++){
        System.out.println(dataOfSomeSort.tableOfNames[i]);
        String inputedData = scanner2.nextLine();
        list.add(inputedData);
    }   
}

    void showData(){

        Scanner scanner3 = new Scanner(System.in);
        int number = scanner3.nextInt();

        if(number < 1) {
            System.out.println("Wrong number.");
        } else if(number>1) {
            int regula = (number*10)-10;

            for(int i=regula; i<regula+9; i++) {
                System.out.println(list.get(regula));
            }
        }
    }     
}  

在行中:System.out.println(list.get(regula));

我有错误。我该怎么办?

编辑:100%的列表不为空。我只是粘贴了代码片段,里面有一个错误,希望有人会说我怎么能解决“list-error”的问题。我想在列表中添加一些信息,然后选择某些“列表行”并显示这些数据。

3 个答案:

答案 0 :(得分:1)

至少在for循环中进行基本检查:

for(int i=regula; i < regula+9; i++){
    if (list.get(regula) != null)
        ...
    }

答案 1 :(得分:1)

List是inputData的局部变量,因此您无法访问putside(即来自showData)。另请注意,两种方法之间存在缺失

答案 2 :(得分:0)

List<String> list = new ArrayList<String>();仅限于inputData方法范围内。将其声明为类成员。这就是你list can't be resolved获得System.out.pritnln(list.get(regla));的原因。无法从该方法访问该列表,因为它在另一个方法中是本地作用域

public class Objects {

    List<String> list = new ArrayList<String>();

    void inputData() {

此外,您没有lista - lista.add(inputedData);。你只有list

可能想要改变

lista.add(inputedData);

list.add(inputedData);