У меня есть следующий класс в своем кодеИспользование Generic Тип параметра Классы
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)? Но это дало мне ошибку. Поэтому, если i GenericService loginService = new GenericService , конструктор должен вызвать супер с параметрами Login.class. Это работает так, но не общий способ, говоря E.class. Как я могу это сделать ?
EDIT
Я хочу, чтобы объединить следующие классы в единую CLAS
общественного класса 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 из этих классов. На самом деле идея abad добавляет все эти классы, если они не нужны.
С наилучшими пожеланиями
Вы, кажется, пытается сделать что-то, что может быть лучше сделать по-другому: у меня был быстрый взгляд на определение SpringAndroidSpiceRequest и loadDataFromNetwork, кажется, только метод, который делает что угодно. Что вы пытаетесь достичь, переопределив это, чтобы вернуть null? – fishinear
Это всего лишь тест. Все запросы отличаются от классов POJO. Я хочу иметь один класс запроса, а не несколько классов. Вот почему я хочу создать общий класс запросов. Имеет ли это смысл ? – user1730789