Come il javadoc per le Class
Stati classe
istanze della classe Class
rappresentano classi e interfacce in un esecuzione di applicazioni Java. Un enum
è un tipo di classe e un'annotazione è un tipo di interfaccia. Ogni array appartiene anche a una classe che è riflessa come un oggetto Class
condiviso da tutti gli array con lo stesso tipo di elemento e numero di dimensioni. tipi primitivi Java (boolean
, byte
, char
, short
, int
, long
, float
, e double
), e la parola chiave void
sono rappresentati anche come Class
oggetti.
Un oggetto Class
fornisce semplicemente alcuni metodi di metadati e di fabbrica per il tipo che rappresenta.
Ad esempio, Class#isPrimitive()
indica se il tipo rappresentato è una primitiva.
La classe Class
e le sue istanze sono, tra l'altro, utilizzate per la riflessione.
Diciamo che avete avuto la una classe come
public class Example {
public long add(int first, long second) { // for whatever reason
return first + second;
}
}
e di voler richiamare il metodo add
, dato solo il suo nome e il tipo di parametro. Di seguito fallirebbe
Class<?> exampleClass = Example.class;
exampleClass.getMethod("add", Integer.class, Long.class);
perché i tipi di parametri non sono Integer
e Long
, sono int
e long
.
Avresti per fare qualcosa di simile
Class<Example> exampleClass = Example.class;
Method addMethod = exampleClass.getMethod("add", int.class, long.class);
Example instance = exampleClass.newInstance();
addMethod.invoke(instance, 42, 58L);
si può dare un link per un buon tutorial sulla riflessione che spiegano questo concetto? – karim
Se segui questo percorso su Oracle riceverai molte informazioni utili: https://docs.oracle.com/javase/tutorial/reflect/ – deezy