Podczas przeglądania dokumentacji Java 7 API natknąłem się nowej klasy java.lang.ClassValue z następującym raczej minimalnym dokumentacji:ClassValue w Javie 7
Lazily powiązać wartość oblicza się (potencjalnie) każdego rodzaju. Na przykład, jeśli język dynamiczny musi skonstruować tabelę wysyłania komunikatów dla każdej klasy napotkanej na stronie wysyłania wiadomości, może użyć
ClassValue
do przechowywania informacji o pamięci podręcznej potrzebnej do szybkiego wysłania wiadomości dla każdej napotkanej klasy.
Czy ktoś może lepiej wyjaśnić, jaki problem rozwiązuje ta klasa, a może jakiś przykładowy kod lub projekt open source, który już korzysta z tej klasy?
Aktualizacja: Nadal interesuje mnie rzeczywisty kod źródłowy lub przykłady korzystające z tej nowej klasy.
Znalazłem także this mail on the mlvm-dev mailing list dotyczące niektórych ulepszeń implementacji. Zostało najwyraźniej zmienione z używania WeakHashMap na nowe prywatne pole w java.lang.Class, aby uczynić go bardziej skalowalnym.
Czytając API Ci połączoną sugeruje mi, że 'get()' metoda jest najlepszym miejscem do wskazówek. Nie rozumiem jednak, dlaczego metoda 'get()' ma obiekt 'Class'. – Raedwald
Obecnie trwa dyskusja na liście dyskusyjnej core-libs (http://mail.openjdk.java.net/pipermail/mlvm-dev/2013-April/005321.html) na temat wykorzystania ClassValue w groovy i jej interakcji z klasa rozładunku. –