【问题标题】:Accessing ArrayList from another class is returning null Java [duplicate]从另一个类访问 ArrayList 将返回 null Java [重复]
【发布时间】:2021-03-22 15:37:17
【问题描述】:

我的 loginactivity 类中定义了一个静态数组列表。

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

【问题讨论】:

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

标签: java android arraylist coordinates


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多