我正在使用resty-gwt库,想知道是否可以动态使用JsonEncoderDecoder接口?
例如。我有一个pojo如下:
@JsonTypeInfo(use=Id.CLASS, include=As.PROPERTY, property="class")
public class MyObject {....}
响应中返回类名:是否可以使用生成器生成接口
public interface MyObjectCodec extends JsonEncoderDecoder<MyObject > {}
并以某种方式调用GWT.create(MyObjectCodec.class)以便我可以解码对象?
即使我从未尝试过,我相信你也能。
从restyGWT.gwt.xml 提取
<generate-with class="org.fusesource.restygwt.rebind.RestServiceGenerator">
<when-type-assignable class="org.fusesource.restygwt.client.RestService" />
</generate-with>
<generate-with class="org.fusesource.restygwt.rebind.JsonEncoderDecoderGenerator">
<when-type-assignable class="org.fusesource.restygwt.client.JsonEncoderDecoder" />
</generate-with>
<generate-with class="org.fusesource.restygwt.rebind.DirectRestServiceGenerator">
<when-type-assignable class="org.fusesource.restygwt.client.DirectRestService" />
</generate-with>
因此,如果您正在编写JsonEncoderDecoder,生成器应该为您生成代码。
您应该能够使用方法JSONValue encode(T value)
在JSONValue 中对对象进行编码
我不知道你所说的动态是什么意思,但IMO它都是"静态"的,这意味着它并不真正依赖于运行时变量或任何东西。