Transtypage Object->Derivé d'object
Bonjour a tous, et désolé pour le titre non explicite :roll:
J'ai une question qui me tarode l'esprit depuis quelques temps;
Tout d'abord, j'ai cherché en vain une methode qui permet de redimensionner un tableau d'objet tout en preservant ces valeurs. Si une fonction tels que celle ci existe, je suis preneur ;)
En tout cas, voilà ce que j'utilise pour redimensionner un tableau d'objet:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
public void Salarie_ReDim(int size)
{
DADSU_Salarie[] ArrayTemp = new DADSU_Salarie[size];
if(size == Salaries.length)
return;
for(int i = 0; i<(size<Salaries.length?size:Salaries.length); i++)
ArrayTemp[i] = Salaries[i];
Salaries = ArrayTemp;
} |
Cela marche tres bien, mais comme vous le voyez, chaque fonctions s'applique a un type de donnée bien distinct.
Or j'ai plusieurs type d'objet, et j'aimerai ne pas repeter ma fonction une fois par type d'objet. J'utilise donc cela, mais sa ne fonctionne pas:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
public static Object[] ReDim (Object[] obj, int count)
{
Object[] ArrayTemp = new Object[count];
if(count == obj.length)
return obj;
for(int i = 0; i<(count<obj.length?count:obj.length); i++)
ArrayTemp[i] = obj[i];
return ArrayTemp;
} |
Lorsque j'utilise cela de cette façon:
Citation:
Salaries = (DADSU_Salaries)Tools.ReDim(Salaries,Salaries.length+1);
Il compile puis me lance une exception "Invalid TypeCast"
Puis-je savoir pourquoi? Et encore mieux, quelqu'un a-t-il une reponse?
Merci d'avance!
PS: C'est un travail que je doit rendre en toute urgence :oops:
Re: Transtypage Object->Derivé d'object
Citation:
Envoyé par anykeyh
Bonjour a tous, et désolé pour le titre non explicite :roll:
J'ai une question qui me tarode l'esprit depuis quelques temps;
Tout d'abord, j'ai cherché en vain une methode qui permet de redimensionner un tableau d'objet tout en preservant ces valeurs. Si une fonction tels que celle ci existe, je suis preneur ;)
En tout cas, voilà ce que j'utilise pour redimensionner un tableau d'objet:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
public void Salarie_ReDim(int size)
{
DADSU_Salarie[] ArrayTemp = new DADSU_Salarie[size];
if(size == Salaries.length)
return;
for(int i = 0; i<(size<Salaries.length?size:Salaries.length); i++)
ArrayTemp[i] = Salaries[i];
Salaries = ArrayTemp;
} |
Cela marche tres bien, mais comme vous le voyez, chaque fonctions s'applique a un type de donnée bien distinct.
Or j'ai plusieurs type d'objet, et j'aimerai ne pas repeter ma fonction une fois par type d'objet. J'utilise donc cela, mais sa ne fonctionne pas:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
public static Object[] ReDim (Object[] obj, int count)
{
Object[] ArrayTemp = new Object[count];
if(count == obj.length)
return obj;
for(int i = 0; i<(count<obj.length?count:obj.length); i++)
ArrayTemp[i] = obj[i];
return ArrayTemp;
} |
Lorsque j'utilise cela de cette façon:
Citation:
Salaries = (DADSU_Salaries)Tools.ReDim(Salaries,Salaries.length+1);
Il compile puis me lance une exception "Invalid TypeCast"
Puis-je savoir pourquoi? Et encore mieux, quelqu'un a-t-il une reponse?
Merci d'avance!
PS: C'est un travail que je doit rendre en toute urgence :oops:
Et comme ça
Code:
1 2
|
DADSU_Salaries[] salaries = (DADSU_Salaries[])Tools.ReDim(Salaries,Salaries.length+1); |
Re: Transtypage Object->Derivé d'object
Citation:
Envoyé par anykeyh
Tout d'abord, j'ai cherché en vain une methode qui permet de redimensionner un tableau d'objet tout en preservant ces valeurs. Si une fonction tels que celle ci existe, je suis preneur ;)
Il me semble que la classe Vector peut répondre à ton problème. Elle permet de créer un équivalent de tableau dont la taille peut changer en plus ou en moins.
Re: Transtypage Object->Derivé d'object
Citation:
Envoyé par FFF
Citation:
Envoyé par anykeyh
Tout d'abord, j'ai cherché en vain une methode qui permet de redimensionner un tableau d'objet tout en preservant ces valeurs. Si une fonction tels que celle ci existe, je suis preneur ;)
Il me semble que la classe Vector peut répondre à ton problème. Elle permet de créer un équivalent de tableau dont la taille peut changer en plus ou en moins.
Oui le problème c'est que Vector est thread-safe donc plus couteux, utilises donc ArrayList :wink: