虽然通常我们使用长度变量来获取数组的大小 例如这是一个 fragment
JSONObject jsonData = new JSONObject(getmData());
JSONArray itemsArray = jsonData.getJSONArray(FLICKR_ITEMS);
for (int i= 0;i<itemsArray.length();i++) {
JSONObject jsonPhoto =itemsArray.getJSONObject(i);
String title = jsonPhoto.getString(FLICKR_TITLE);
String author = jsonPhoto.getString(FLICKR_AUTHOR);
}
最佳答案
这是因为您不是在访问数组,而是在 JSONArray
上调用方法。
允许直接访问字段是一种不好的做法,因为它搞砸了继承,阻止你控制谁可以设置它的值,在需要这些东西时禁止同步等,所以长度字段是通过一个方法公开的。请参阅 Effective Java 第 2 版第 14 项:
In public classes, use accessor method, not public fields
关于java - 为什么 length() 用于在 Android 中的 json 解析中获取数组的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32900801/