importjava.util.ArrayList;publicclassClassA{privateclassClassB<IextendsInteger,SextendsString>extendsArrayList<Object>{privatevoidmyAdd(Object...params)throwsException{super.add(checkIn(params));}privateObjectcheckIn(Object...params)throwsException{intc=0;Objecto=null;for(Objectp:params)if(p!=null){c++;o=p;}if(c==0)thrownewException("Je veux un paramètre !");if(c>1)thrownewException("Mais juste un seul !");returno;}publicvoidaddInt(Ii)throwsException{myAdd(i);}publicvoidaddString(Ss)throwsException{myAdd(s);}}publicstaticvoidmain(String[]args)throwsException{ClassAa=newClassA();a.doThings();}publicvoiddoThings()throwsException{ClassB<Integer,String>maListeDeBidules=newClassB<>();maListeDeBidules.addInt(1);// okmaListeDeBidules.addString("deux");// okSystem.out.println("mon bidule 1: "+maListeDeBidules.get(0));System.out.println("mon bidule 2: "+maListeDeBidules.get(1));maListeDeBidules.myAdd(3,"quatre");// pas ok}}
Peut-être que c'est une solution qui se rapprocherait plus de ce que tu veux ? Pas sûr.
En tout cas, dans cette v3, pas d'encapsulation d'objet, on peut étendre, c'est juste un type et une fonction à rajouter...
On n'a pas le même style, mais encore merci pour ta réponse !
[^] # Re: Typage
Posté par _kaos_ . En réponse au message débutant java : opérations de base sur les listes. Évalué à 1.
Hop, comme ça fait du bien de bosser un peu :
Peut-être que c'est une solution qui se rapprocherait plus de ce que tu veux ? Pas sûr.
En tout cas, dans cette v3, pas d'encapsulation d'objet, on peut étendre, c'est juste un type et une fonction à rajouter...
On n'a pas le même style, mais encore merci pour ta réponse !
Matricule 23415