Ho una classe generica con questa definizione:generici Java: mancata corrispondenza Bound
public class AcoProblemSolver<C, E extends Environment, A extends AntColony<E, Ant<C, E>>> {
Dove AntColony
va in questo modo:
public abstract class AntColony<E extends Environment, A extends Ant<?, E>> {
E Ant
va come questa:
public abstract class Ant<C, E extends Environment> {
Speravo di estendere AntColony
in questo modo:
public class FlowShopProblemSolver extends
AcoProblemSolver<Integer, FlowShopEnvironment, FlowShopAntColony> {
Ma Eclipse sta mostrando un errore sulla classe FlowShopAntColony
parametri:
Bound mismatch: The type FlowShopAntColony is not a valid substitute for the bounded parameter <A extends AntColony<E,Ant<C,E>>> of the type AcoProblemSolver<C,E,A>
Il che mi confonde, perché FlowShopAntColony
si definisce in questo modo:
public class FlowShopAntColony extends
AntColony<FlowShopEnvironment, AntForFlowShop> {
E AntForFlowShop
va in questo modo:
public class AntForFlowShop extends Ant<Integer, FlowShopEnvironment> {
Perché il parametro FlowShopAntColony
non è accettato come parametro valido?