0

我正在使用 Gson 将向量保存到 sharedpreferences

这是我的 setter 和 getter,但我似乎对我的 getter 有一些警告。

我的二传手没有任何警告

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

我的吸气剂警告我“类型安全:Vector 类型的表达式需要未经检查的转换才能符合 Vector”

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

我不知道在 sharedpreferences 中保存对象甚至对象向量需要做多少工作,但这对我来说似乎是最好的解决方案。

4

1 回答 1

1

我不确定问题是什么。我猜这与解决未经检查的转换警告有关。为此,改变

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

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

发生警告是因为该fromJson方法返回 type Vector,但它被分配给 type 的引用Vector<AccountLabels>

(注意:自 2001 年(我认为)和较新的 Collections API 以来,使用 ofVector是不受欢迎的。)

于 2013-04-01T02:54:25.673 回答