Como uma classe literal é compilada no bytecode Java?
public class A {
}
public class B {
public static void b() {
System.out.println(A.class);
}
}
Como é a classe literalA.class
compilado no bytecode de B.class? É uma referência de campo? Não consigo encontrar uma menção a isso na documentação do bytecode do Oracle / Sun.
Os descompiladores não têm problemas para reconstruí-lo, seja o que for:
java -jar decompiler.jar B.class
Pegou JAVA_TOOL_OPTIONS: '-Dfile.encoding = UTF8'
// // Descompilado pelo Procyon v0.5.30 //
public class B
{
public static void b() {
System.out.println(A.class); <<<
}
}