我有下面的類在我的代碼使用泛型類型參數類
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