un patron strategy paramétrable [generics] - Java - Programmation
Marsh Posté le 26-04-2005 à 12:20:01
Je reviens avec mes generics Cette fois-ci, je tente de faire un patron strategy Pour être plus clair, un genre de truc comme ça (décrit là) Voilà ma classe abtraite Context qui possède une méthode qui fait appel à une stratégie qui peut changer dynamiquement :
Et l'interface qui spécifie la stratégie :
Mon problème est au moment du sous-typage. Voici comment je voudrai déclarer mon sous-type de Context :
et ma stratégie :
Mais j'ai une erreur sur "this.setStrategy(strategy);", le compilo me sort :
The method setStrategy(Strategy<Integer,? super Context<Integer>> ) in the type Context<Integer> is not applicable for the arguments (SomeStrategy)
J'ai du mal à comprendre l'erreur toujours est-il qu'avec une stratégie implémentée comme ça, tout passe :
Mais du coup, je suis obligé de recaster mon objet Context en SomeObject Quelqu'un(e) a une idée ?
Marsh Posté le 28-04-2005 à 12:19:35
up du jeudi Si je suis pas clair dites-le
Marsh Posté le 28-04-2005 à 12:34:54
sisi c'est clair, mais j'ai pas le temps de me concentrer là-dessus au boulot, et le soir j'oublie.
Make sure you enter the(*)required information where indicate.HTML code is not allowed
Marsh Posté le 26-04-2005 à 12:20:01
Je reviens avec mes generics
Cette fois-ci, je tente de faire un patron strategy
Pour être plus clair, un genre de truc comme ça (décrit là)
Voilà ma classe abtraite Context qui possède une méthode qui fait appel à une stratégie qui peut changer dynamiquement :
Et l'interface qui spécifie la stratégie :
Mon problème est au moment du sous-typage. Voici comment je voudrai déclarer mon sous-type de Context :
et ma stratégie :
Mais j'ai une erreur sur "this.setStrategy(strategy);", le compilo me sort :
The method setStrategy(Strategy<Integer,? super Context<Integer>> ) in the type Context<Integer> is not applicable for the arguments (SomeStrategy)
J'ai du mal à comprendre l'erreur toujours est-il qu'avec une stratégie implémentée comme ça, tout passe :
Mais du coup, je suis obligé de recaster mon objet Context en SomeObject
Quelqu'un(e) a une idée ?