我有一个json文件。所以,我解析了json文件,并将所有值存储在ArrayList
中。现在,我想在应用程序中共享所有类的值。那么,有什么建议和有效的方法呢?
答案 0 :(得分:2)
Singleton 模式。
只需为您的List
对象创建一个公共静态参考,然后从您应用的任何部分访问它。只要您的应用程序还活着,它就可以访问。并且您可以手动解除分配(通过使引用为空)。
public class SharedData {
public static List<Custom> jsonData;
}
以及申请的任何部分:
SharedData.jsonData = new ArrayList<Custom>();
并阅读数据
Custom obj = SharedData.jsonData.get(0);
答案 1 :(得分:1)
现在,我想在应用程序中共享所有类的值。那么,有什么建议和有效的方法呢?
假设您在上述问题中错过了介词 “with” ,并希望在所有其他课程中使用您的arraylist,您可能想要去全局Arraylist,它只是在新类中声明公共静态Arraylist (我们称之为GlobalState.java)。
/** GLobalState.java **/
public class GlobalState {
public static ArrayList<E> jsonGlobalArrayList;
}
你可以使用getter&amp;如果你愿意,可以设置。
现在,只要在解析json文件后填充了你的arraylist,你就可以将你的arraylist分配给这个全局Arraylist。
GlobalState.jsonGlobalArrayList = jsonArrayList;
每当我处理json值时,这就是我的方法。希望这会有所帮助。
P.S。:请原谅我过度简化这个解决方案,因为当我提到全局ArrayList时你可能已经理解了这一点。 :)
答案 2 :(得分:0)
public class Utilities { public static boolean boolVar = false ; public static int intVar= 0 ; public static String str = "" ; public static List<Object> aList= new ArrayList<Object>() ; public static HashMap<String, Object> aMap= new HashMap<String, Object>() ; }
使用类名称来使用它们;
Utilities.boolVar = boolValue; Utilities.intVar = intValue;
内部活动。