2013-04-01 73 views
0

我节省了矢量使用GSON保存对象的使用GSON

这是我的getter和setter方法sharedpreferences,但我似乎对我的getter一些警告SharedPreferences一个载体。

我二传手没有任何警告

 Gson gson = new Gson(); 
    String json = gson.toJson(al); 
    editor.putString("accountLabels", json); 
    editor.commit(); 

我消气警告我“类型安全:型载体的表达需要选中转换为符合矢量”

Gson gson = new Gson(); 
    String json = myPref.getString("accountLabels", "Error"); 
    Vector<AccountLabels> obj = gson.fromJson(json, Vector.class); 
    return obj; 

我不不知道在它周围有多少工作是保存共享首选项中的对象或对象向量,但对我来说这似乎是最好的解决方案。

回答

1

我不确定问题是什么。我猜这是为了解决未经检查的转换警告。要做到这一点,改变

Vector<AccountLabels> obj = gson.fromJson(json, Vector.class); 

Vector<AccountLabels> obj = gson.fromJson(json, new TypeToken<Vector<AccountLabels>>(){}.getType()); 

警告正在发生,因为fromJson方法返回类型Vector,但它被分配到Vector<AccountLabels>类型的引用。

(注:自2001年以来(我认为)和较新的集合API,use of Vector is frowned upon

+0

是的,它是关于预警,感谢它有助于答案。这也是很好的知道。这是令人失望的,以及矢量是如此便携。 – kotsumu