Jestem trochę nowa w Javie, więc być może źle rozumiem przypadki użycia adnotacji w Javie. Mój problem jest następujący:Adnotacja Java zwraca tajemnicze nazwy klas
Po dodaniu adnotacji do metody otrzymuję nazwy klas, takie jak $ Proxy31 podczas sprawdzania adnotacji w metodzie. Ciekawe, dlaczego otrzymuję nazwy klas dla moich adnotacji, które są podobne do tego i co mogę zrobić, aby rozwiązać ten problem.
Method m = this.remoteServiceClass.getMethod(rpcRequest.getMethod().getName());
RequiredPermission a = m.getAnnotation(RequiredPermission.class);
ta zwraca null adnotacji choć wiem, że metoda jest ona patrzy w górę ma adnotacji RequiredPermission realizowane.
for(Annotation a : m.getAnnotations())
{
System.out.println(a.getClass().getName());
}
Spowoduje to wydrukowanie nazw klas $ Proxy31.
Proszę podać krótki, ale kompletny program, aby zademonstrować problem. Bez kodu trudno jest/nie wiadomo, co się dzieje. –
Klasa zdalnego ma metodę lub klasa rpcRequest ma zaimplementowaną adnotację? Czy adnotacja ma zachowywanie w czasie wykonywania i ma zastosowanie do typu metody? (Nie dostaniesz błędów, jeśli adnotacja sama w sobie nie zostanie adnotowana poprawnie, adnotacja zniknie). – Yishai
Metoda remoteServiceClass ma zastosowanie, adnotacja ma zachowywanie w czasie wykonywania i typ elementu docelowego. Używam nazwy z polecenia rpcRequest, aby pobrać aktualną metodę z klasy. – bdorry