从另一个类访问ArrayList将返回null Java

从另一个类访问ArrayList将返回null Java,java,android,arraylist,coordinates,Java,Android,Arraylist,Coordinates,我在loginactivity类中定义了一个静态arraylist private static ArrayList<LatLng> userCoordinates; // Removed some code for ease of reading but the contents of the list are defined and set here: ArrayList<LatLng> coords = new ArrayList<>();

我在loginactivity类中定义了一个静态arraylist

private static ArrayList<LatLng> userCoordinates;

// Removed some code for ease of reading but the contents of the list are defined and set here:
ArrayList<LatLng> coords = new ArrayList<>();
                                            for (String lat: lats) {
                                                for (String lng: lngs) {
                                                    double a = Double.parseDouble(lat);
                                                    double b = Double.parseDouble(lng);
                                                    LatLng latLng = new LatLng(a,b);
                                                    coords.add(latLng);
                                                    break;
                                                }
                                            }
                                            setCoordinates(coords);

// Getter & Setter

private void setCoordinates(ArrayList<LatLng> coordinates) {
        userCoordinates = coordinates;
    }
    
    public static ArrayList<LatLng> getCoordinates() {
        return userCoordinates;
    }
但是,当我尝试从另一个类访问它并在onCreate方法中打印它时:

private ArrayList<LatLng> userCoordinates = LoginActivity.getCoordinates();

//In onCreate()
System.out.println(userCoordinates.toString());

我发现错误:尝试在空对象引用上调用虚拟方法“java.lang.String java.util.ArrayList.toString”

您需要调用初始化数组列表的代码。

您从不初始化用户坐标。只有在调用setCoordinates时才给它一个值,这在调用代码中没有完成。getter是静态的,因此该方法不能在该类之外使用。删除static,它应该可以正常工作。您确定初始化列表的代码在代码获取列表之前运行吗?@azurefrog setCoordinates在for循环之后被调用。我确实在循环之后立即调用setCoordinates。我也做了完全相同的过程来设置和获取一个字符串,该字符串工作正常,但由于某些原因,ArrayList返回Null