[英]Serialize abstract class with Gson returns null
我的護目鏡 Gson 庫有問題。 看下面的代碼:
public abstract class Main {
public String foo = "foo";
public List<String> bar = Arrays.asList( "foo", "bar" );
@Override
public String toString( ) {
Gson gson = new Gson( );
return gson.toJson( this );
}
public static void main( String[] args ) {
Main main = new Main( ) {
};
System.out.println(main.toString( ));
}
}
它打印null
。 但我希望它打印{"foo":"foo","bar":["foo","bar"]}
當我在創建Main( )
。
那么如何獲得抽象類的正確輸出呢?
對於抽象類,您需要編寫自己的適配器。 請參閱有關該主題的這篇文章。
抱歉有點晚了,但對於那些不想創建嵌套類的人,您可以使用它:
AbstractPayload payload = new AbstractPayload("field") {};
String result = gson.toJson(payload, AbstractPayload.class)
這適用於我的情況
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.