我是
Android和
Android的新手Java并且有关于我的服务器应用程序通信的问题.我的服务器总是返回带有“Code”,“Message”和“Data”的JSON输出.像这样:
e.g: {"code":200,"msg":"success","data":[{"track_id":123},{"track_id":124},{"track_id":125}]} e.g: {"code":200,"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; }
但这是我的问题.我不想给列表中的“car”,“login”等特定类型.根据我的要求,我想创建一个带有List-Type“car”的ServerResponse-class,另一个带有List-Type“Locations”等.
有没有办法将类ServerResponse与多种类型的ArrayLists一起使用,或者我是否必须为我想要使用的每个列表类型多次复制此类?
对不起,如果这里已有解决方案,但我不知道我要搜索什么.而对于我搜索的内容,我找不到适合的解决方案.
最好的祝福
迈克尔
解决方法
查看Java
Generic Types.
public class ServerResponse<T> { private int code; private String msg; private List<T> data; }
T可以是您想要的任何类型,因此您的列表将是该类型.然后你的getter / setter方法可以返回或接受类型T.
现在让我们假设您的响应是针对Car对象的.你会这样做的
private ServerResponse<Car> mCarResponse = new ServerResponse<>();
现在,您可以像这样在ServerResponse类中放置一个方法.
public class ServerResponse<T> { private int code; private String msg; private List<T> data; public List<T> getResponSEObjectList(){ return data; } }
您现在将获得一个List< Car>宾语.