¿Cómo se compila un literal de clase en código de bytes Java?
public class A {
}
public class B {
public static void b() {
System.out.println(A.class);
}
}
¿Cómo es la clase literal?A.class
compilado en el bytecode de B.class? ¿Es una referencia de campo? No puedo encontrar una mención de eso en la documentación de bytecode de Oracle / Sun.
Los descompiladores no tienen problemas para reconstruirlo, sea lo que sea:
java -jar decompiler.jar B.class
Recogido JAVA_TOOL_OPTIONS: '-Dfile.encoding = UTF8'
// // Descompilado por Procyon v0.5.30 //
public class B
{
public static void b() {
System.out.println(A.class); <<<
}
}