Je rencontre un problème lorsque la boucle suivante génère une erreur Incompatible types: Required: Workstation, Found: java.lang.Object
. Avec tout ce qui est tapé, je ne peux pas comprendre pourquoi il trouve un objet au lieu de l'objet tapé.Types incompatibles - Objet trouvé lors de l'utilisation de génériques
private static WorkflowProcess getWorkflowProcessByWorkstationRecursive(Collection<WorkflowProcess> workflowProcesses) {
for (WorkflowProcess workflowProcess : workflowProcesses) {
for (Workstation workstation : workflowProcess.getWorkstations()) //ERROR IS HERE
WorkflowProcess.java
abstract public class WorkflowProcess<WorkstationType extends Workstation> {
private ArrayList<WorkstationType> workstationList = new ArrayList<WorkstationType>();
public ArrayList<WorkstationType> getWorkstations() {
return workstationList;
}
ServerWorkflowProcess.java
abstract public class ServerWorkflowProcess extends WorkflowProcess<ServerWorkstation> {
ServerWorkstation.java
abstract public class ServerWorkstation extends Workstation<ServerWorkflowProcess> {
Il est un peu compliqué, mais essentiellement la hiérarchie de classe ressemble à ceci:
SpecificWorkflowProcess
étend TypeOfWorkflowProcess<TypeOfWorkstaton>
étend WorkflowProcess
SpecificWorkstation
étend TypeOfWorkstation<TypeOfWorkflowProcess>
étend Workstation
WorkflowProcesses
-Workstation
= Un à plusieurs
'WorkflowProcess # getWorkstations()' déclaration? – m0skit0
Généralement, il est préférable de commencer par la première erreur * ou avertissement * dans le fichier en premier. –