j'ai les classes suivantes:Aucun nom approprié avec générique et HAS-Une relation en Java
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>{}
élément est constitué de vue et le modèle. La vue connaît l'élément et le modèle, le modèle ne connaît que l'élément (ne demandez pas quel est le motif - ce n'est pas important). J'ai AbstractElement et Temp. La température peut également être héritée. Dans Temp j'ai besoin de surcharger la méthode newView. Cependant, je reçois not suitable method found for select
au LINE X
. Quelle est mon erreur?
EDIT: Injecter et instance sont
javax.enterprise.inject.Instance;
javax.inject.Inject;
Manque 'Instance' dans votre code. – lexicore
@lexicore Désolé, impossible de trouver. Pourriez-vous fournir plus de détails? –
Vous codez cette 'instance privée viewInstance;' mais vous n'avez pas inclus 'Instance' dans votre extrait de code. Que voulez-vous dire que vous ne pouvez pas trouver? ' –
lexicore