我的代码中有以下类
public class GenericService<E> extends SpringAndroidSpiceRequest<E> {
public GenericService(Class<E> clazz) {
super(clazz);
}
@Override
public E loadDataFromNetwork() throws Exception {
return null;
}
}
现在,此类的构造函数采用类类型的参数。我想去掉这个参数,直接说 super(E.class) 之类的话?但这给了我一个错误。因此,如果我 GenericService loginService=new GenericService 构造函数应该使用参数 Login.class 调用 super。这就像这样工作,但不是说 E.class 的通用方式。我怎样才能做到这一点 ?
编辑
我想将以下类合并为一个类
公共类 LoginService 扩展 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 个这样的课程。如果不需要,添加所有这些类真的很糟糕。
亲切的问候