Gson を使用してクラスのオブジェクトを保存しようとしていますが、残念ながら機能しません。私のクラスは、ArrayList を使用して Collection インターフェイスを実装しています。json 文字列を取得しようとすると、醜いエラーが発生します。ここにいくつかのコードがあります:
public class Prob1<T> implements Collection<T>{
ArrayList<T> alb = new ArrayList<>();
@Override
public boolean add(T e) {
// TODO Auto-generated method stub
alb.add(e);
return false;
}
@Override
public boolean addAll(Collection<? extends T> c) {
// TODO Auto-generated method stub
return false;
}
@Override
public void clear() {
// TODO Auto-generated method stub
}
@Override
public boolean contains(Object o) {
// TODO Auto-generated method stub
return alb.contains(o);
}
@Override
public boolean containsAll(Collection<?> c) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean isEmpty() {
// TODO Auto-generated method stub
return alb.isEmpty();
}
@Override
public Iterator<T> iterator() {
// TODO Auto-generated method stub
return null;
}
@Override
public boolean remove(Object o) {
// TODO Auto-generated method stub
alb.remove(o);
return false;
}
@Override
public boolean removeAll(Collection<?> c) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean retainAll(Collection<?> c) {
// TODO Auto-generated method stub
return false;
}
@Override
public int size() {
// TODO Auto-generated method stub
return alb.size();
}
@Override
public Object[] toArray() {
// TODO Auto-generated method stub
return null;
}
@Override
public <T> T[] toArray(T[] a) {
// TODO Auto-generated method stub
return null;
}
public String toString() {
return alb.toString();
}
}
ここでは、GSon を使用して JSON 文字列を取得しようとしています。
Prob1 p = new Prob1<String>();
p.add("Johny");
p.add("Albus");
p.add("Sirrius");
System.out.println(p);
Gson gson = new Gson();
String json = gson.toJson(p);
そして、ここに私が得るエラーがあります:
com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write の com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:95) でのスレッド「メイン」java.lang.NullPointerException の例外(CollectionTypeAdapterFactory.java:60) com.google.gson.Gson.toJson(Gson.java:586) com.google.gson.Gson.toJson(Gson.java:565) com.google.gson.Gson. Prob1.main(Prob1.java:104) の com.google.gson.Gson.toJson(Gson.java:500) の toJson(Gson.java:520)
何かご意見は?