soy algo nuevo en Java, por lo que tal vez entienden mal los casos de uso para las anotaciones en Java. Mi problema es el siguiente:Java anotación devuelve los nombres de clase crípticos
Después de anotar un método recibo nombres de clases como $ Proxy31 al inspeccionar las anotaciones en el método. Tengo curiosidad por saber por qué estoy recibiendo nombres de clase para mis anotaciones que son similares a esto, y qué puedo hacer para solucionar este problema.
Method m = this.remoteServiceClass.getMethod(rpcRequest.getMethod().getName());
RequiredPermission a = m.getAnnotation(RequiredPermission.class);
Esto devuelve una anotación nula a pesar de que sé que el método que está mirando hacia arriba tiene la anotación RequiredPermission implementado.
for(Annotation a : m.getAnnotations())
{
System.out.println(a.getClass().getName());
}
Esto imprime los nombres de clase $ Proxy31.
Sírvanse proporcionar un programa corto pero completo para demostrar el problema. Sin el código es difícil/imposible saber qué está pasando. –
La clase remota tiene el método, o la clase rpcRequest tiene la anotación implementada? ¿La anotación tiene retención de tiempo de ejecución y se aplica a un tipo de método? (No obtendrá errores si la anotación no está anotada correctamente, la anotación simplemente se pierde). – Yishai
RemoteServiceClass tiene el método, la anotación tiene retención de tiempo de ejecución y un tipo de método de elemento de destino. Estoy usando el nombre de rpcRequest para recuperar el método real de la clase. – bdorry