Передача конечных переменных в анонимные классы

В final variable passed to anonymous class via constructor, Jon Skeet упомянул, что переменные передаются экземпляру анонимного класса через автоматически генерируемый конструктор. Почему в таком случае я не смогу увидеть конструктор с помощью рефлексии:

public static void main(String... args) throws InterruptedException {
final int x = 100;
new Thread() {
    public void run() {
        System.out.println(x);      
        for (Constructor cons : this.getClass()
                .getDeclaredConstructors()) {
            StringBuilder str = new StringBuilder();
            str.append("constructor : ").append(cons.getName())
                    .append("(");
            for (Class param : cons.getParameterTypes()) {
                str.append(param.getSimpleName()).append(", ");
            }
            if (str.charAt(str.length() - 1) == ' ') {
                str.replace(str.length() - 2, str.length(), ")");
            } else
                str.append(')');
            System.out.println(str);
        }
    }

}.start();
Thread.sleep(2000);

}

На выходе получается:

100
constructor : A$1()

19
задан Community 23 May 2017 в 10:30
поделиться