从另一个类访问ArrayList将返回null Java
我在loginactivity类中定义了一个静态arraylist从另一个类访问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<>();
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