Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在其他类中访问此列表?_Java_List - Fatal编程技术网

Java 如何在其他类中访问此列表?

Java 如何在其他类中访问此列表?,java,list,Java,List,我已经从CSV文件创建了一个项目列表,但不确定如何在另一个类中访问此列表。我已经在新类中创建了list类的实例,但无法找到访问list的方法 public class ListClass { public static void main(String[] args) throws IOException { CSVReader csvReader = new CSVReader(); List list = csvReader.Read("csvFile

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

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();

您应该将列表作为私有实例变量存储在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)将列表添加为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
      }
    }
    

    您是否确保两个文件都在同一个包中?您是否在其他类中导入了
    ListClass
    ?您是否使用类路径上的所有相关类文件进行构建?当您指的是访问时,您指的是初始化、实例化还是实际使用这些值?您试图访问的列表只能从main方法访问。尝试将列表分配给类变量。您可能希望将字段设置为私有,否则使用getter会有点开销。非常感谢,这确实帮助了我
    public class ListClass {
     public List list;
     ListClass(){
       try{
            CSVReader csvReader = new CSVReader();
            list = csvReader.Read("csvFile.csv");
           }catch(IOException e){
             //handle the exception
           }
       }
    }
    
    public class OtherClass{
      public static void main(String[] args){
      ListClass listClass = new ListClass();
      List newList = listClass.list;// your list
      }
    }