현재 추상화 모델이 작동하지 않습니다. 왜, 어떻게 고쳐야하는지 잘 모르겠습니다. 다음과 같은 수업을 참조하십시오. return 문 중JAVA Generics design
AbstractError<ErrorCaptchRequired> myError = myObject.getAbstractError();
String captchaUrl = myError.getCaptchaUrl();
컴파일 오류 :
public class ErrorCaptchaRequired extends AbstractError {
public String getCaptchaUrl(){
return this.captchaUrl;
}
}
public abstract class AbstractError<E extends AbstractError> {
public E getError(int errorCode){
if(error_code == 1)
return new ErrorCaptchaRequired("abc", "abc", "abc");
if(error_code == 2)
return new AnotherErrorType();
}
}
public class MyObject<E extends AbstractError>{
private E error;
public E getAbstractError(){
return error;
}
}
는 나중에 나는이처럼 사용할 Incompatible types
을하지만 내 이해로 나는 내가 할 수있는 parametirized 클래스를했습니다 때문에 왜 확실하지 않다 AbstractError
에서 확장되고 ErrorCaptchaRequired
에서 확장되는 모든 유형을 반환합니다. 수정이나 더 좋은 디자인을 제안 해 주시겠습니까? 어떤 도움을 주셔서 감사합니다!
@JeffreyBosboom, UPD ated! 감사! –
* 완전한 * 코드를 게시하십시오. 'AnotherErrorType'가 빠졌고'getError()'의 마지막 return 문과 마찬가지로 어떤 줄이 컴파일러 오류를 가져 오는 지 알 수 있습니다. – EJP