Java类,具有多种类型的Arraylist

Java类,具有多种类型的Arraylist,java,android,arraylist,server-communication,Java,Android,Arraylist,Server Communication,我是Android和Java新手,对我的服务器应用程序通信有一个问题。我的服务器总是返回带有“代码”、“消息”和“数据”的JSON输出。像这样: 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

我是Android和Java新手,对我的服务器应用程序通信有一个问题。我的服务器总是返回带有“代码”、“消息”和“数据”的JSON输出。像这样:

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}]}
我想使用这样的类来处理数据:

public class ServerResponse {
    private int code;
    private String msg;
    private List<> data;
}
公共类服务器响应{
私有整数码;
私有字符串msg;
私人名单数据;
}
但这是我的问题。我不想给列表指定一个特定的类型,如“car”、“login”等。根据我的请求,我想创建一个列表类型为“car”的ServerResponse类,另一个列表类型为“Locations”等

有没有一种方法可以将ServerResponse类与多种类型的ArrayList一起使用,或者对于我要使用的每种列表类型,我都必须复制这个类几次

如果这里已经有解决方案,我很抱歉,但我不知道我要搜索什么。对于我所寻找的,我找不到一个合适的解决方案

致意 Michael

研究Java

公共类服务器响应{
私有整数码;
私有字符串msg;
私人名单数据;
} 
T可以是您想要的任何类型,因此您的列表将是该类型。然后,getter/setter方法可以返回或接受类型T

现在让我们假设你的反应是针对一个汽车物体。你会这么做的

private ServerResponse<Car> mCarResponse = new ServerResponse<>();
private ServerResponse mCarResponse=new ServerResponse();
现在可以像这样在ServerResponse类中放置一个方法

public class ServerResponse<T> { 
    private int code;
    private String msg;
    private List<T> data;

    public List<T> getResponseObjectList(){
        return data;
    }
} 
公共类服务器响应{
私有整数码;
私有字符串msg;
私人名单数据;
公共列表getResponseObjectList(){
返回数据;
}
} 

现在您将获得一个
列表
对象。

您还可以将Serverrespone设置为通用

public class GenericResponse <T>{
   private int code;
   private String msg;
   private List<T> data;
}
公共类GenericResponse{
私有整数码;
私有字符串msg;
私人名单数据;
}

您可以为“car”、“login”、“location”等创建超级类型。然后将ServerResponse中的列表实例化为list,并将Car、Login或Location对象放在其中我认为Car和Login不应该具有相同的父对象我已经回答了,但现在我开始与您的文本进行斗争,您想要多个
ServerResponse
和一种类型的
ArrayList
,还是一个
ServerResponse
ArrayList
中的多个不同类?@CarlosRodriguez我相信他们可以。像
ResponseItem
这样的东西可能有用。非常感谢。帮助我获得了更好的代码质量。那正是我想要的for@Michael,太好了!泛型完全改变了我第一次了解它们时的编码方式。这是一个很好的功能。
public class GenericResponse <T>{
   private int code;
   private String msg;
   private List<T> data;
}