Bonjour,
Je me pose des questions sur l'ellipse.
Voici un code juste pour baser le debat.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
import java.util.List;
import java.util.LinkedList;
public class MyCollection
{
private List<MyObject> myObjects = new LinkedList<MyObject>();
public void add(MyObject o){ myObjects.add(o); }
/* // deja defini par l'ellipse
public void add(MyObject[] os){
for(MyObject o : os){ myObjects.add(o); }
}
*/
public void add(MyObject... os){
for(MyObject o : os){ myObjects.add(o); }
}
}
class MyObject {} |
Comment la jvm peut elle faire la difference entre la premiere version de add et la derniere quand on ne passe qu'un object en parametre?
Et une autre question theorique mais qui ne servira pas (ou presque pas dans la pratique), si on declare
public void add(Object... os)
les appels
1 2
| add(new Object[1],new Object[2]) // os contient ces deux tableaux
add(new Object[6]) // os = le tableau créé |
sont clairs
Cela implique qu'il est impossible que os soit de taille 1 et contenant une reference vers un tableau, non?
mais ne peux determiner quelle methode appeler, non?
Est ce que est accepté?
Merci d'avance
Remarque : Ce n'est pas la peine de me dire d'aller lire quelquechose sur ce forum, j'ai lu tout ce qui était en raport, mon code est juste une base pour des questions donc oui il ne sert pas à grand chose... Et je precise aussi, actuellement je ne dispose pas de jdk installé sur l'ordinateur que j'utilise...
Partager