Hallo,
ich habe folgenden Codeschnipsel:
Wie die einzelnen Modelle definiert werden, sei mal dahin gestellt.
BasicControllerIf:
BasicController:
EditContractPartnerController:
Nun zu meinem Problem. Ich bekomme mit meinem 1. Code-Ausschnitt Warnings (logischerweise):
BasicControllerIf is a raw type. References to generic type BasicControllerIf<M,V> should be parameterized
Type safety: The method addModel(Object) belongs to the raw type BasicControllerIf. References to generic type BasicControllerIf<M,V> should be parameterized
Wie werde ich die Warnings los? Ich kann bei der Deklaration von "controller" noch nicht die Generics auflösen, da sie ja je nach case andere sind.... (M und V sind quasi case-abhängig).
ich habe folgenden Codeschnipsel:
Java:
public void handleMyEventClassEvent(EventObject e, MenuHandler handler, MenuEvent s,
SessionDTO sessionDTO) {
BasicControllerIf controller;
switch (menuEvent.getFunction()) {
case MenuEvent.NEW_CONTRACTPARTNER:
controller = new EditContractPartnerController();
controller.addModel(contractPartnerModel);
break;
case MenuEvent.NEW_CAPITALSOURCE:
controller = new EditCapitalSourceController();
controller.addModel(newCapitalSourceModel);
break;
default:
controller = new BasicController();
}
controller.addEvent(handler);
controller.addSession(sessionDTO);
}
Wie die einzelnen Modelle definiert werden, sei mal dahin gestellt.
BasicControllerIf:
Java:
public interface BasicControllerIf<M, V> extends ActionListener {
public void addEvent(MenuHandler e);
public void addSession(SessionDTO s);
public void addView(V view);
public void addModel(M m);
}
BasicController:
Java:
public class BasicController<M, V> implements BasicControllerIf<M, V> {
protected MenuHandler event;
protected SessionDTO sessionDTO;
protected M model;
protected V view;
public void actionPerformed(ActionEvent e) {
}
public void addEvent(MenuHandler e) {
this.event = e;
}
public void addSession(SessionDTO s) {
this.sessionDTO = s;
}
public void addView(V view) {
this.view = view;
}
public void addModel(M m) {
this.model = m;
}
}
EditContractPartnerController:
Java:
public class EditContractPartnerController extends
BasicController<ContractPartnerModel, EditContractPartnerView> {
@Override
public void actionPerformed(ActionEvent e) {
...
}
}
Nun zu meinem Problem. Ich bekomme mit meinem 1. Code-Ausschnitt Warnings (logischerweise):
BasicControllerIf is a raw type. References to generic type BasicControllerIf<M,V> should be parameterized
Type safety: The method addModel(Object) belongs to the raw type BasicControllerIf. References to generic type BasicControllerIf<M,V> should be parameterized
Wie werde ich die Warnings los? Ich kann bei der Deklaration von "controller" noch nicht die Generics auflösen, da sie ja je nach case andere sind.... (M und V sind quasi case-abhängig).
Zuletzt bearbeitet: