概念
內部類 ( inner class ) : 定義在另一個類中的類。
詳見:https://juejin.im/post/5a903ef96fb9a063435ef0c8
用法
(1)非static內部類
有時候我們在開發的過程中組裝數據的時候不想一個返回數據創建多個類,就需要用到內部類進行組裝:如下:
@Data
public class GetCityVo {
private int code;
private CityDate data;
@Data
public class CityDate{
private String province;
private String city;
private String sp;
}
}
要實例化GetCityVo類的內部類CityDate
錯誤實例化方法:
GetCityVo.CityDate cityDate = new GetCityVo.CityDate();
報錯:
正確寫法(非static的內部類實例化,需要先new外部類再new內部類):
GetCityVo getZoneResult = new GetCityVo();
GetCityVo.CityDate cityDate = getZoneResult.new CityDate();
//或者
GetCityVo getZoneResult = new GetCityVo().new CityDate() ;
(2)static內部類
@Data
public class GetCityVo {
public int code;
public CityDate data;
@Data
public static class CityDate{
private String province;
private String city;
private String sp;
}
}
實例化(靜態內部類與普通內部類的區別在於,靜態內部類的對象是不指向與某個具體的外部類對象,所以在創建對象時不需要創建外部類對象。直接實例化內部類對象),如下:
GetCityVo.CityDate cityDate = new GetCityVo.CityDate();
cityDate.setCity("北京");
彩蛋時間