0

Person と ReqSingUp の 2 つのオブジェクトがあり、ReqSingUp に Person が含まれているとします。

今私が試してみると:

Person p=new Person("dan","lala");
ReqSingUp reqSingUp=new ReqSingUp(p);
String s = gson.toJson(reqSingUp,ReqSingUp.class);
Object o = gson.fromJson(s, Object.class);

if (o instanceof ReqSingUp) {
    System.out.println("it's ReqSingUp");
}
if (o instanceof Person ) {
    System.out.println("it's person");
}

どの条件も満たしていません (notinstanceof ReqSingUpおよび not instanceof Person )。

どのタイプか知る方法はありますか?

前もって感謝します。

4

1 に答える 1

2

いいえ、直接知る方法はありません。

これは、JSON ファイルに含まれる情報には、そこでシリアル化されたオブジェクトに関する型情報が直接含まれていないためです。そのため、通常、JSON ファイルを読み取るときに、次のようにクラスを提供します。

fromJSon(myObject, MyClass.class)

これは、任意の型またはジェネリック化されたオブジェクトのコレクションを読み取る場合でも、実際に問題を引き起こします。

于 2012-04-30T19:17:48.380 に答える