我有以下代码来说明我的问题:
首先,我定义Box类和Cat类
public class Box<T> {
private T data;
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
}
public class Cat {
private String name;
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
然后定义GsonUtils
(静态类),该类旨在将一些json字符串序列化为Box<T>
的对象
public class GsonUtils {
public static <T> Box<T> json2BoxObject(String json) {
Type tpe = new TypeToken<Box<T>>(){}.getType();
return new GsonBuilder().create().fromJson(json, tpe);
}
}
如果我可以为Cat
方法提供json2BoxObject
类型,那么我将得到Box<Cat>
如果我可以提供Dog
类型为json2BoxObject
的方法,那么我会得到一个Box<Dog>
但是,我不知道如何为json2BoxObject
提供类型,这是我要问的问题
使用上面的代码,给json2BoxObject
和json字符串{"data":{"name":"Kitty","age":1}}
,我想得到一个Box<Cat>
对象,但是我得到了Box [Map]
参考方案
在某些时候,您需要提及猫或狗。我使用Box创建了Type,并在json2Java
方法中传递了它。
String msg ="{\"data\":{\"name\":\"Kitty\",\"age\":1}}";
Type type = new TypeToken<Box<Cat>>(){}.getType();
Box<Cat> obj = GsonUtils.json2Java(msg, type);
System.out.println(obj);
而json2Java
方法是:
public static <T> Box<T> json2Java(String json, Type type) {
Box<T> box = new GsonBuilder().create().fromJson(json, type);
return box;
}
页面加载而不是提交时发生struts验证 - java请原谅我;我对Struts有点陌生。我遇到一个问题,即页面加载而不是我实际提交表单时发生了验证。我整天都在论坛上搜寻和搜寻,没有任何运气。我显然做错了一些事情,应该很容易确定,但是我还没有发现问题所在。这是我的struts.xml的片段:<action name="*Test" method="{1}" clas…
DataSourceTransactionManager和JndiObjectFactoryBean和JdbcTemplate的用途是什么? - java以下的用途是什么:org.springframework.jdbc.core.JdbcTemplate org.springframework.jdbc.datasource.DataSourceTransactionManager org.springframework.jndi.JndiObjectFactoryBean <tx:annotatio…
Struts2中的错误处理 - java我对如何在Struts2中进行错误处理感到困惑。我希望在发生错误时将用户引导到一个中心页面。此外,当发生错误时,我希望将其记录下来,因为我使用的是log4j,因此我将其记录为log.error(e.getMessage(), e);但是,在动作类中,如果我捕获到错误(将我的所有代码放入try / catch中),则不会出现中央/常见错误页面。因此,我决定不捕…
Java中的“ <<”运算符 - java最喜欢的语句来自Java的Character类:(1 << Character.PARAGRAPH_SEPARATOR)) >> type PARAGRAPH_SEPARATOR是字节,type是整数。这句话中的操作员,他们做什么?如何以及在哪里可以使用这些运算符?这是oracles java.lang.Character文档。该类中…
在特定的Swing组件上设置自定义外观 - java是否可以在Swing GUI上仅针对特定组件或组件集设置用于Synth外观的文件,而无需为其他任何组件进行更改? java参考方案 是的,有可能。将类型指定为“区域”,将其更改为“名称”,将值更改为由setName(“ componentName”)给定的特定名称;应用程序中的方法。添加这个<style id="titleBarButtons…