我有下面的类在我的代码使用泛型类型参数类
public class GenericService<E> extends SpringAndroidSpiceRequest<E> {
public GenericService(Class<E> clazz) {
super(clazz);
}
@Override
public E loadDataFromNetwork() throws Exception {
return null;
}
}
现在这个类的构造函数采用类型类的参数。我想删除这个参数,并直接说超级(E.class)的东西?但这是我的错误。因此,如果我GenericService loginService = new GenericService 该构造函数应该与params Login.class调用超级。这是这样工作的,但不是通过说E.class的通用方式。我怎样才能做到这一点 ?
编辑
我想下面的类合并成一个单一CLAS
公共类login服务扩展SpringAndroidSpiceRequest {
private Login.Request loginRequest;
private final String loginRequestURL = "/login";
public LoginService() {
super(Login.Response.class);
}
public final Login.Response loadDataFromNetwork() throws Exception {
Uri.Builder uriBuilder = Uri.parse(
ProfileInfo.getActiveProfile().getbaseURL() + loginRequestURL)
.buildUpon();
String url = uriBuilder.build().toString();
return getRestTemplate().postForObject(url, loginRequest,
Login.Response.class);
}
@Override
public final String createCacheKey() {
return loginRequest.getUsername() + "" + loginRequest.getPassword();
}
}
和
public class ForgetPasswordService extends
SpringAndroidSpiceRequest<ForgetPassword.Response> {
private final String forgotPasswordURL = "/forgotpassword";
public ForgetPasswordService() {
super(ForgetPassword.Response.class);
}
public final ForgetPassword.Response loadDataFromNetwork() throws Exception {
Uri.Builder uriBuilder = Uri
.parse(ProfileInfo.getActiveProfile().getbaseURL()
+ forgotPasswordURL).buildUpon();
String url = uriBuilder.build().toString();
return getRestTemplate().postForObject(url, forgotPasswordRequest,
ForgetPassword.Response.class);
}
public final String createCacheKey() {
return forgotPasswordRequest.getPhoneOrEmailAddress();
}
}
两个类都是标识。两者之间唯一的区别就是他们给出的回应类型。现在我有大约23个这样的课程。如果不需要,真的很想加入所有这些类。
亲切的问候
你似乎在试图做一些事情,可以更好地以不同的方式来完成:我有一个快速浏览一下SpringAndroidSpiceRequest的定义,以及loadDataFromNetwork似乎是唯一方法可以做任何事情。你试图通过重写返回null来实现什么? – fishinear 2013-04-21 12:20:31
这只是一个测试。所有的请求都是不同的POJO类。我想要一个请求类而不是多个类。这就是为什么我想制作一个通用的请求类。这有意义吗? – user1730789 2013-04-21 13:40:49