java - 将数组对象推送到 Array 或 ArrayList 并从 Android 中的另一个类访问它
问题描述
我有一个数组对象,我将它推送到这样的 ArrayList:
static ArrayList<String> jsonResponse = new ArrayList<>();
//inside the method
strResp = response.body().string(); //the response I get from the server
jsonResponse.clear(); //clear the array first
jsonResponse.add(strResp);
现在从另一个班级,我像这样访问它,但我无法打印它,因为它说 NULL:
public class SecondClass extends ReactContextBaseJavaModule {
private FirstClass firstclass;
public void getLocks(Callback callback) {
System.out.println("Print object: " + firstclass.jsonResponse);
}
}
第一个问题,在这种情况下,ArrayList 是实现我想要的正确方法吗?
第二个问题,为什么我不能在其他班级打印它?
我在 Android/Java 方面没有任何经验,所以我知道这对你们中的许多人来说可能是一个愚蠢的问题,但请尝试理解!
解决方案
在Java中访问静态元素,你不需要类(FirstClass)的实例。你只是做
FirstClass.jsonResponse();
你得到 null 的原因是因为你试图打印 List 对象,它不是一个字符串,而是一个字符串列表。因此,请执行以下操作:
if(!jsonResponse.isEmpty()){
//print the first String in the List
jsonResponse.get(0);
}
要回答您的其他问题,LinkedList 具有更多功能,但 List 更快。看看这个以获得更多解释。
推荐阅读
- javascript - react中组件的多次重新渲染..我是初学者,请参阅
- reactjs - 呈现 JSX 的函数与在另一个组件中声明组件的函数有什么区别?
- swift - 如果网络未连接,则为 SwiftUI
- python - 数据框与列列表的交集
- python - python - 使用 discord.py 删除用户消息
- wordpress - manage_posts_custom_column 最后两个参数
- git - 如何在 gitlab 中将每个人限制在他们自己的分支中?
- mysql - 通过 vb.net 桌面应用程序调用 REST API
- linux - Docker没有权限挂载卷
- algorithm - 如何识别使用哪种编码算法?