當(dāng)我們在創(chuàng)建java內(nèi)部類的實例時候,可能會遇到這種編譯錯誤:"xxx" is not an enclosing class
類的結(jié)構(gòu)代碼:
public class OuterClass {
public class InnerClass {
}
}
實例化內(nèi)部類:
OuterClass.InnerClass innerClass = new OuterClass.InnerClass();
這個時候就會出現(xiàn)編譯錯誤:"xxx.OuterClass" is not an enclosing class
解決辦法:若要創(chuàng)建內(nèi)部類的實例删窒,需要有外部類的實例才行裂垦,或者是將內(nèi)部類設(shè)置為靜態(tài)的。
方法一:
OuterClass.InnerClass innerClass = new OuterClass().new InnerClass();
/*OuterClass outerClass = new OuterClass();
OuterClass.InnerClass innerClass = outerClass.new InnerClass();*/
方法二:將內(nèi)部類設(shè)置為靜態(tài)的
public class OuterClass {
static public class InnerClass {
}
}