概念
内部类 ( 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("北京");
彩蛋时间