Java class, 多类型Arraylist
Java class, Arraylist with multiple types
我是 Android 和 Java 的新手,对我的服务器应用程序通信有疑问。我的服务器总是 returns JSON 输出 "Code"、"Message" 和 "Data"。像这样:
e.g: {"code":200,"msg":"success","data":[{"track_id":123},{"track_id":124},{"track_id":125}]}
e.g: {"code":200,"msg":"success","data":[{"type":"car","length":100},{"type":"train","length":500},{"type":"foot","length":3}]}
我想使用这样的 class 来处理数据:
public class ServerResponse {
private int code;
private String msg;
private List<> data;
}
但这就是我的问题。我不想将 "car"、"login" 等特定类型提供给列表。根据我的要求,我想创建一个带有 List-Type "car" 的 ServerResponse-class,另一个带有 List-Type "Locations" 等
有没有办法将 class ServerResponse 与多种类型的 ArrayLists 一起使用,或者我是否必须为我想使用的每种列表类型复制此 class 几次?
如果这里已经有解决方案,我很抱歉,但我不知道我必须搜索什么。对于我搜索的内容,我找不到合适的解决方案。
此致
迈克尔
查看 Java Generic Types.
public class ServerResponse<T> {
private int code;
private String msg;
private List<T> data;
}
T 可以是您想要的任何类型,因此您的列表将是该类型。然后你的 getter/setter 方法可以 return 或接受类型 T.
现在让我们假设您的响应是针对 Car 对象的。你会这样做
private ServerResponse<Car> mCarResponse = new ServerResponse<>();
现在您可以像这样在 ServerResponse class 中放置一个方法。
public class ServerResponse<T> {
private int code;
private String msg;
private List<T> data;
public List<T> getResponseObjectList(){
return data;
}
}
您现在将获得一个 List<Car>
对象。
您也可以使 Serverrespone 通用。
public class GenericResponse <T>{
private int code;
private String msg;
private List<T> data;
}
我是 Android 和 Java 的新手,对我的服务器应用程序通信有疑问。我的服务器总是 returns JSON 输出 "Code"、"Message" 和 "Data"。像这样:
e.g: {"code":200,"msg":"success","data":[{"track_id":123},{"track_id":124},{"track_id":125}]}
e.g: {"code":200,"msg":"success","data":[{"type":"car","length":100},{"type":"train","length":500},{"type":"foot","length":3}]}
我想使用这样的 class 来处理数据:
public class ServerResponse {
private int code;
private String msg;
private List<> data;
}
但这就是我的问题。我不想将 "car"、"login" 等特定类型提供给列表。根据我的要求,我想创建一个带有 List-Type "car" 的 ServerResponse-class,另一个带有 List-Type "Locations" 等
有没有办法将 class ServerResponse 与多种类型的 ArrayLists 一起使用,或者我是否必须为我想使用的每种列表类型复制此 class 几次?
如果这里已经有解决方案,我很抱歉,但我不知道我必须搜索什么。对于我搜索的内容,我找不到合适的解决方案。
此致 迈克尔
查看 Java Generic Types.
public class ServerResponse<T> {
private int code;
private String msg;
private List<T> data;
}
T 可以是您想要的任何类型,因此您的列表将是该类型。然后你的 getter/setter 方法可以 return 或接受类型 T.
现在让我们假设您的响应是针对 Car 对象的。你会这样做
private ServerResponse<Car> mCarResponse = new ServerResponse<>();
现在您可以像这样在 ServerResponse class 中放置一个方法。
public class ServerResponse<T> {
private int code;
private String msg;
private List<T> data;
public List<T> getResponseObjectList(){
return data;
}
}
您现在将获得一个 List<Car>
对象。
您也可以使 Serverrespone 通用。
public class GenericResponse <T>{
private int code;
private String msg;
private List<T> data;
}