0

我有一个 json 文件。因此,我解析了 json 文件,并将所有值存储在ArrayList. 现在,我想分享应用程序中所有类的值。那么,什么是推荐和有效的方法呢?

4

3 回答 3

2

单例模式。

只需为您的对象创建一个公共静态引用List并从应用程序的任何部分访问它。只要您的应用程序还活着,它就可以访问。并且您可以手动取消分配它(通过将引用归零)。

public class SharedData {
  public static List<Custom> jsonData;
}

并从您的应用程序的任何部分:

SharedData.jsonData = new ArrayList<Custom>();

并读取数据

Custom obj = SharedData.jsonData.get(0);

单身维基

于 2013-07-03T18:31:12.170 回答
1

现在,我想分享应用程序中所有类的值。那么,什么是推荐和有效的方法呢?

假设您在上述问题中错过了介词“with”,并且还想在所有其他类中使用您的 Arraylist,您可能想要使用全局 Arraylist,这只不过是在新类中声明一个公共静态 Arraylist (我们称它为 GlobalState.java)。

/** GLobalState.java **/
public class GlobalState {
    public static ArrayList<E> jsonGlobalArrayList;
}

如果需要,您可以使用 getter 和 setter。

现在,只要您在解析 json 文件后填充了您的数组列表,您就可以将您的数组列表分配给这个全局数组列表。

 GlobalState.jsonGlobalArrayList = jsonArrayList; 

每当我处理 json 值时,我就是这样做的。希望这可以帮助。

PS:请原谅我过于简化了这个解决方案,因为当我提到全局 ArrayList 时你可能已经理解了这一点。:)

于 2013-07-03T19:05:23.023 回答
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 ; 实用程序.intVar = intValue ;

内活动。

于 2013-07-03T19:16:47.207 回答