为什么是;java.lang.IndexOutOfBoundsException“;访问已填充的arraylist时引发?

为什么是;java.lang.IndexOutOfBoundsException“;访问已填充的arraylist时引发?,java,exception,Java,Exception,这是我的主要课程: package main; public class Main_Class { public static void main(String[] args) { Game_Map_Handler GMH = new Game_Map_Handler(); GMH.AddData("adad"); System.out.println(GMH.RetrieveData()); } } 这是我的另一个类(游戏地图

这是我的主要课程:

package main;

public class Main_Class {
    public static void main(String[] args) {
        Game_Map_Handler GMH = new Game_Map_Handler();
        GMH.AddData("adad");
        System.out.println(GMH.RetrieveData());
    }
}
这是我的另一个类(游戏地图处理程序):


为什么会发生此错误?似乎说“地图数据”中没有填充任何内容,但我确实填充了它

public void AddData(String InData) {
    List<String> Map_Data = new ArrayList<String>(); <----
    Map_Data.add(InData);
};    
作为旁注,请遵循java命名约定,变量名称应以小写字母开头,即
map\u Data
AddData
方法中,您就是您的
map\u Data
变量

public void AddData(String InData) {
    List<String> Map_Data = new ArrayList<String>();   //<-- remove this line 
    Map_Data.add(InData);
}
public void AddData(字符串InData){

List Map_Data=new ArrayList();//您必须使用
this
运算符

this.Map_Data.add(InData);
在函数中,您使用的是本地声明的列表,而不是类中的列表

public void AddData(String InData) {

    Map_Data.add(InData);
}
public void AddData(String InData) {
    List<String> Map_Data = new ArrayList<String>();   //<-- remove this line 
    Map_Data.add(InData);
}
this.Map_Data.add(InData);