ad es. conPerché non è possibile fare riferimento a metadati o metodi in Java?
class Foo {
Integer bar;
}
mi chiedo perché non v'è una caratteristica lingua che mi permette di fare
Foo.class.bar //yes, xxx.class returns something of java.lang.Class<T>
per riferirsi al bar campo meta?
Sto leggendo il libro Pro JPA 2 e mi sembra che la generazione di metamodelli canonici sia necessaria, perché ciò non è possibile in Java.
Nota, questa è una domanda teoricaper curiosità, in cui vorrei ottenere alcune informazioni, perché questa funzione non è stata implementata.
--- --- Aggiornamento
Elaborare mia domanda un po 'di più, si consideri l'esempio di aggiunta di attributi in JPA dalle API Entity Grafico:
EntityGraph<Foo> g = myEntityManager.createEntityGraph(Foo.class)
g.addAttributeNodes("bar")
Non c'è formale link (per il compilatore/gli IDE) tra la stringa "bar" e l'attributo Foo's bar
.
È possibile utilizzare 'Field field = Foo.classgetDeclaredField (" bar ");' –
Lo so, ma poi utilizzo una stringa letterale, che non è di tipo né refactoring sicuro –
Poiché java 8, esiste una rappresentazione del metodo : 'System.out :: println' sebbene non abbia capacità di riflessione come' Field'. –