Ho trovato questa sintassi:
new Class[]{new Object().getClass()}
Mi spiegate che significato hanno le graffe dopo le quadre? []{}
Quindi che significato ha l'espressione sopra?
Ho trovato questa sintassi:
new Class[]{new Object().getClass()}
Mi spiegate che significato hanno le graffe dopo le quadre? []{}
Quindi che significato ha l'espressione sopra?
In genere è
new Class[] ti dice che è un arraycodice:Class [] classes = new Class[] {Object.getClass()};
sai che l'array puoi istanziarlo specificando il contenuto, cosa che fai con quello tra parentesi graffe (solo Object.class)
Riporto la sintassi completa:
Class cl;
try {
Method currentMethod = cl.getMethod( "equals", new Class[]{new Object().getClass()});
etc
etc
stai usando la reflection, richiedendo alla classe in oggetto il metodo equals con parametro Object.
questa potevi scriverla cosìcodice:Method currentMethod = cl.getMethod( "equals", new Class[]{new Object().getClass()});
ricordando dalle API checodice:Class [] classes = new Class[] {new Object().getClass()}; Method currentMethod = cl.getMethod( "equals", classes);
il primo parametro indica il nome del metodo, a seguire vai ad indicare invece un numero variabile di oggetti Class che rappresentano i parametri del metodo.
i 3 puntini nella definizione indicano i varargs (numero variabile di argomenti) che sintetizzi in un singolo argomento (l'array definito)