Java?????? ??? Java??????TypeToken???????????????????????????????????????
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java?????? ??? Java??????TypeToken???????????????????????????????????????相关的知识,希望对你有一定的参考价值。
?????????round ???java ????????? assign ?????? set array mode private
??????????????????????????????????????????????????????????????????
private List<MyZhuiHaoDetailModel> listLottery = new ArrayList<MyZhuiHaoDetailModel>();
Gson gson=new Gson();
JSONObject object=new JSONObject(callbackValue);
listLottery = gson.fromJson(object.getString("lists"),
new TypeToken<List<MyZhuiHaoDetailModel>>() {
}.getType());
GSON????????? TypeToken ?????????????????????????????????capture??????List<MyZhuiHaoDetailModel>????????????????????????????????????????????????????????????????????????Java???????????????????????????????????????????????????????????????????????????????????????????????? getType()???????????????API????????????
???????????????gson??????????????????Gson?????????fromJson()??????????????????Json???????????????java??????????????????
?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
?????????????????????
??????json???????????????{"name":"name0","age":0}
??????:
Person person = gson.fromJson(str, Person.class);
??????????????????????????????json?????????????????????????????????????????????
????????????????????????????????????
??????:
List<Person> ps = gson.fromJson(str, new TypeToken<List<Person>>(){}.getType());
for(int i = 0; i < ps.size() ; i++)
{
Person p = ps.get(i);
System.out.println(p.toString());
}
????????????????????????????????????TypeToken?????????gson??????????????????????????????????????????????????????????????????????????????
???????????????gson???????????????java json????????????????????????gson??????????????????????????????????????????annotation??????????????????????????????????????????gson?????????????????????annotation??????????????????????????????????????????
?????????java???????????????TypeToken??????????????????java?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
ArrayList<String> stringList = Lists.newArrayList();
ArrayList<Integer> intList = Lists.newArrayList();
System.out.println("intList type is " + intList.getClass());
System.out.println("stringList type is " + stringList.getClass());
System.out.println(stringList.getClass().isAssignableFrom(intList.getClass()));
?????????????????????????????????????????????ArrayList???????????????????????????????????????String??????????????????Integer???????????????????????????????????????Class??????????????????list???????????????????????????list?????????????????????????????????
intList type is class java.util.ArrayListstringList type is class java.util.ArrayListtrue
?????????????????????java.util.ArrayList??????????????????????????????true??????????????????stringList???intList?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
TypeToken????????????????????????????????????????????????
TypeToken<ArrayList<String>> typeToken = new TypeToken<ArrayList<String>>() {}; TypeToken<?> genericTypeToken = typeToken.resolveType(ArrayList.class.getTypeParameters()[0]); System.out.println(genericTypeToken.getType());
??????????????????????????????????????????????????????????????????????????????resolveType?????????????????????????????????????????????????????????????????????????????????
class java.lang.String
????????????TypeToken??????????????????????????????????????????
TypeToken????????????????????????
?????? |
?????? |
getType() |
???????????????java.lang.reflect.Type. |
getRawType() |
????????????????????????????????? |
getSubtype(Class<?>) |
??????????????????????????????????????????????????????????????????????????????Iterable???????????????List.class?????????????????????List??? |
getSupertype(Class<?>) |
??????????????????????????????????????????????????????????????????????????????????????????????????????Set???????????????Iterable.class??????????????????Iterable??? |
isAssignableFrom(type) |
????????????????????? assignable from ???????????????????????????????????????????????????true???List<? extends Number>???assignable from List??????List??????. |
getTypes() |
????????????Set??????????????????????????????????????????????????????????????????????????????Set???????????????classes()???interfaces()????????????????????????????????????????????? |
isArray() |
?????????????????????????????????????????????<? extends A[]>??? |
getComponentType() |
??????????????????????????? |
Gson???????????????????????????????????????annotation??????????????????gson????????????????????????????????????java???gson????????????????????????
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????http://www.captainbed.net
以上是关于Java?????? ??? Java??????TypeToken???????????????????????????????????????的主要内容,如果未能解决你的问题,请参考以下文章