Gson与Result泛型使用实例与理解
目录
用 [TOC]
来生成目录:
未引入泛型做法
没有引入泛型之前时写法,通过ajax等方式与前端交互的数据,返回的类型data{}里面的内容不确定:
public class UserResult {
public int code;
public String message;
public User data;
}
//=========
public class UserListResult {
public int code;
public String message;
public List<User> data;
}
//=========
String json = "{..........}";
Gson gson = new Gson();
UserResult userResult = gson.fromJson(json,UserResult.class);
User user = userResult.data;
UserListResult userListResult = gson.fromJson(json,UserListResult.class);
List<User> users = userListResult.data;
使用泛型写法
这样会导致不懂返回数据类型时候要重写一个实体,而使用泛型定义接口:
public class Result<T> {
public int code;
public String message;
public T data;
}
在实际使用时候:
//不再重复定义Result类
Type userType = new TypeToken<Result<User>>(){}.getType();
Result<User> userResult = gson.fromJson(json,userType);
User user = userResult.data;
Type userListType = new TypeToken<Result<List<User>>>(){}.getType();
Result<List<User>> userListResult = gson.fromJson(json,userListType);
List<User> users = userListResult.data;
脚注
生成一个脚注1.
- 小记. ↩