如何在另一个班级中访问此列表?

时间:2019-06-17 09:19:15

标签: java list

我已经从CSV文件创建了一个项目列表,但是不确定如何在另一个班级中访问此列表。我已经在新类中创建了列表类的实例,但是无法找到访问列表的方法。

public class ListClass {
    public static void main(String[] args) throws IOException {
        CSVReader csvReader = new CSVReader();
        List list = csvReader.Read("csvFile.csv");
    }
}

我已经能够打印列表,所以我知道它肯定可以正常工作,但是我不确定在其他课程中如何访问它。除以下内容外,新类当前为空;

ListClass listClass = new ListClass();

3 个答案:

答案 0 :(得分:2)

您应该将列表作为私有实例变量存储在ListClass中,并为其创建一个getter:

public class ListClass {
    private List list = null;

    public static void main(String[] args) {
      try {
        new ListClass();
      } catch(IOException ioEx){
        // error handling
      }
    }

    public ListClass() throws IOException {
      CSVReader csvReader = new CSVReader();
      list = csvReader.Read("csvFile.csv");
    }

    public List getList(){
      return list;
    }
}

然后您可以从其他班级访问它:

try {
  ListClass listClass = new ListClass();
  List list = listClass.getList();
} catch(IOException ioEx){
  // error handling
}

答案 1 :(得分:1)

您需要执行以下一项操作,以使其他班级可以访问该列表:

  1. 将列表作为类级别的变量Delcare,并将其公开
class ListClass {
  public List csvList;

  ...
}
  1. 将列表声明为私有类变量并具有访问器
class ListClass {
  private List csvList;

  public List getCsvList() {
    return this.csvList;
  }

  ...
}

还有许多其他访问类变量的方法。第二种是非常普通的方法。

答案 2 :(得分:0)

1)将列表添加为ListClass的字段,并将初始化内容放入构造函数中。

public class ListClass {
 public List list;
 ListClass(){
   try{
        CSVReader csvReader = new CSVReader();
        list = csvReader.Read("csvFile.csv");
       }catch(IOException e){
         //handle the exception
       }
   }
}

2)在OtherClass中创建ListClass对象。

public class OtherClass{
  public static void main(String[] args){
  ListClass listClass = new ListClass();
  List newList = listClass.list;// your list
  }
}
相关问题