Static inner class สร้างอินสแตนซ์ได้ โดยไม่ต้องมีอินสแตนซ์ของ outer class โดยทั่วไป Inner class เป็นส่วนหนึ่งของ nested class เรียกว่า Non-static nested classes ประเภท: member inner class, anonymous inner class, local inner class
เราสามารถสร้าง static inner class ด้วย reflection ใช้ InnerClass.class.newInstance() หากต้องการสร้าง non-static inner class ต้องระบุอินสแตนซ์ outer class ก่อน new operator
ตัวอย่าง
import java.lang.reflect.*;
public class InnerclassWithReflectionTest {
public static void main(String args[]) {
try {
InnerClass inner = (InnerClass) InnerClass.class.newInstance();
inner.test();
} catch(Exception e) {
e.printStackTrace();
}
}
// inner class
static class InnerClass {
public void test() {
System.out.println("Welcome to TutorialsPoint !!!");
}
}
}
ผลลัพธ์
Welcome to TutorialsPoint !!!