Mi Java está oxidada así que por favor ten paciencia conmigo. En C que puedo hacer:Usando la clase actual en la declaración de método estático de Java
int someFunc(void)
{
printf("I'm in %s\n", __func__);
}
En Java, puedo léxico llegar al nombre o la clase del tipo definido en ese momento. Por ejemplo, si tengo:
import org.apache.log4j.Logger;
class myClass {
private static final Logger logger = Logger.getLogger(myClass.class);
...
}
Parece erróneo repetir "myClass" en el argumento getLogger(). Quiero "getLogger (__ CLASS__)" o "getLogger (this.class)" o algo así. (Sé que ambos son tontos, pero deben señalar lo que estoy buscando). ¿El compilador de Java realmente no sabe a qué clase se encuentra en el medio mientras procesa el código fuente?
También podría tener como variable de instancia y utilizar "this.getClass() ". Usar el atributo de instancia sería una mejor idea, a menos, por supuesto, que realmente lo necesite como un atributo de clase. – OscarRyz
el compilador sabe qué clase es, pero ¿no sabías qué clase estás escribiendo? lo siento, es broma ... tuve ese problema - casi el mismo código - pero no he encontrado nada mejor que MyClass.class: -/necesito tener un buen IDE con plantillas de código y refactorización ... –
Ojalá Java tenía esto. Yo recomendaría la sintaxis 'static.class'. – Boann