1. 程式人生 > >java內部類例項化時報錯的問題

java內部類例項化時報錯的問題

如果有一個類的結構如下:
public class Data {
  public class Item {

  }
};

如果需要例項化Item類時,可能會寫成:Data.Item item = new Data.Item();
但是編譯器就會出現一個錯誤:'com.test.Data.Item' is not an enclosing class
其實這種寫法是錯誤的,正確的方式為:
Data data = new Data();
Data.Item item = data.new Item();

如果內部類是static的,如下:
public class Data {
  public static class Item {

  }
};

那就可以直接使用如下方式來例項化:Data.Item item = new Data.Item();