final variable passed to anonymous class via constructor में, जॉन स्कीट ने उल्लेख किया कि अज्ञात वर्ग उदाहरण को एक ऑटो-जेनरेटेड कन्स्ट्रक्टर के माध्यम से चर पारित किया जाता है। क्यों मैं निर्माता उस मामले में प्रतिबिंब का उपयोग को देखने के लिए सक्षम नहीं होगा:गुमनाम वर्गों के लिए अंतिम चर को पास करना
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()
@ बोहेमियन: यह देखते हुए कि मुझे प्रश्न की उत्पत्ति पता है, मुझे लगता है कि यह है :) –