에서 일반적이고 HAS-A 관계에 더 적합한 이름은 내가 다음과 같은 클래스가 없습니다 :자바
public abstract class AbstractElement<V extends AbstractElementView, M extends AbstractElementModel> {
@Inject
private Instance<V> viewInstance;
protected Instance<V> getViewInstance() {
return viewInstance;
}
public abstract V newView();
}
public abstract class AbstractElementModel<E extends AbstractElement> {}
public abstract class AbstractElementView<E extends AbstractElement, M extends AbstractElementModel> {}
public class Temp<V extends TempView, M extends TempModel> extends AbstractElement<V, M>{
@Override
public V newView() {
return getViewInstance().select(TempView.class).get();//LINE X
}
}
public class TempModel<E extends Temp> extends AbstractElementModel<E> {}
public class TempView<E extends Temp, M extends TempModel> extends AbstractElementView<E, M>{}
요소는보기와 모델로 구성되어 있습니다. 뷰는 요소와 모델을 알고 모델은 요소 만 알고 있습니다 (어떤 패턴인지는 묻지 않음 - 중요하지 않음). 나는 AbstractElement와 Temp를 가지고있다. 온도 또한 상속 될 수 있습니다. Temp에서 newView 메서드를 재정의해야합니다. 그러나 LINE X
에 not suitable method found for select
이 표시됩니다. 내 실수는 무엇입니까?
편집 :를 주입 및 인스턴스는 사용자가 입력 매개 변수로 원시 유형을 많이 사용
javax.enterprise.inject.Instance;
javax.inject.Inject;
코드에 '인스턴스'가 누락되었습니다. – lexicore
@lexicore 죄송합니다, 찾을 수 없습니다. 자세한 내용을 제공해 주시겠습니까? –
코드에는이 'private instance viewInstance;'가 있지만 코드 스 니펫에 'Instance'가 포함되어 있지 않습니다. 찾을 수 없다 니 무슨 소리 니? ' –
lexicore