Durante la navigazione la documentazione delle API Java 7 mi sono imbattuto sulla nuova classe java.lang.ClassValue con la seguente documentazione piuttosto minimale:ClassValue in Java 7
Pigramente associare un valore calcolato con (potenzialmente) ogni tipo. Ad esempio, se un linguaggio dinamico deve creare una tabella di invio messaggi per ogni classe incontrata in un messaggio invia sito di chiamata, può utilizzare uno
ClassValue
per memorizzare nella cache le informazioni necessarie per l'invio rapido del messaggio, per ogni classe incontrata.
Qualcuno può dare una spiegazione migliore di quale problema risolve questa classe e forse qualche codice di esempio o progetto open source che già utilizza questa classe?
Aggiornamento: Sono ancora interessato ad alcuni codice sorgente reale o esempi utilizzando questa nuova classe.
Ho trovato anche this mail on the mlvm-dev mailing list relativo ad alcuni miglioramenti dell'implementazione. Apparentemente è stato cambiato dall'utilizzo di una WeakHashMap in un nuovo campo privato su java.lang.Class per renderlo più scalabile.
Leggendo l'API si è collegato al mi suggerisce che il metodo 'get()' è il il posto migliore per indizi. Non capisco perché il metodo 'get()' abbia un oggetto 'Class', comunque. – Raedwald
Attualmente c'è una discussione sulla mailing list di core-libs (http://mail.openjdk.java.net/pipermail/mlvm-dev/2013-April/005321.html) riguardante l'uso di ClassValue in groovy e le sue interazioni con scarico di classe. –