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)가 일정하기 때문에이 경우
100
constructor : A$1()
@ 보헤미안 : 내가 질문의 기원을 알고 있다고 생각하면, 나는 그것이라고 생각한다. :) –