méthodes génériques [Java] - Java - Programmation
Marsh Posté le 24-03-2005 à 11:56:05
ben euh c'est une question à la con, mais pourquoi la methode fill de D ne prend-elle pas un byte?
Marsh Posté le 24-03-2005 à 11:59:20
the real moins moins a écrit : ben euh c'est une question à la con, mais pourquoi la methode fill de D ne prend-elle pas un byte? |
C'est pas une question à la con c'est ce que je dois faire
C'est des classes qui manipulent des images et je sais pas pourquoi elle prends un int au lieu d'un byte mais à mon grand désespoir c'est comme ca
Marsh Posté le 26-03-2005 à 00:00:00
j'avais jamais entendu parler de ça
edit: de "number" et "type" hein
Marsh Posté le 26-03-2005 à 12:15:05
J'ai essayé number mais le mot clé n'est pas reconnu! Ca m'aurait simplifier d'ailleurs d'utiliser directement les types primitifs au lieu des classes Byte, Integer etc .... pour la suite. Du coup je fais des casts de partout et biens sur les unchecked warning qui vont avec!
De plus eclipse 3.0.2 reconnait pas la syntaxe des generic (<> il connait pas).
Et j'ai plein d'erreur bizarre, du genre dans des méthodes génériques de type T
found T
required T
c'est il pas évident ?
Mais bon pour revenir à mon problème, je l'ai contourné et j'utilise le meme type en entrée et en sorite et ca à l'air de marcher.
Marsh Posté le 26-03-2005 à 14:38:07
... qu'idea supporte depuis 1 an et demo
Marsh Posté le 24-03-2005 à 10:17:22
Bonjour,
Je débute dans les generics java et j'ai un petit problème :
J'ai 4 classes A,B,C et D qui héritent de XXX et je dois écrire une classe générique recroupant ces 4 classes. Chacune de ces classes utilise respectivement des int, double, boolean et byte.
J'ai donc crée ma classe générique :
public class GeneClass<T> extends XXX
jusque la tout va bien, le probleme vient des méthodes :
J'ai des méthodes de ce type :
pour la classe A :
public void fill(int x)
{
Arrays.fill(tab,x);
}
pour la classe B :
public void fill(double x)
{
Arrays.fill(tab,x);
}
pour la classe C :
public void fill(boolean x)
{
Arrays.fill(tab,x);
}
pour la classe D :
public void fill(int x)
{
Arrays.fill(tab,(byte)x);
}
Ma fonction générique est donc :
public <T> void fill(T x) {
Arrays.fill(tab, (T)x);
}
Ca marche pour les 3 1eres classes et pas pour les byte car la méthode de D prends un int et non un byte en paramètres et renvoie un byte.
Quelq'un aura une idéé?
merci