Gson を使用してオブジェクトと json を解析すると、TypeToken の初期化が非常に奇妙になります。
Type collectionType = new TypeToken<Collection<Integer>>(){}.getType();
私はこの種の形式を知っています: new TypeToken<Collection<Integer>>().getType();
、上記の中括弧は何ですか? 前もって感謝します!
PSTypeToken
クラスのソースコードを調べました。これはclass
(インターフェイスでも抽象でもなく)コンストラクターがないため、no-parameter constructor
デフォルトとして使用されます。
PS2中かっこを削除すると、コンストラクターが表示されないことがわかります。TypeToken クラスの中を見ると、これがコンストラクターです。
protected TypeToken() {
this.type = getSuperclassTypeParameter(getClass());
this.rawType = (Class<? super T>) $Gson$Types.getRawType(type);
this.hashCode = type.hashCode();
}
public
代わりに使用しないのはなぜですか?