静态内部类&非静态内部类

静态内部类:

官方说明:Nested classes that are declared static are called static nested classes.

即静态内部类也称为静态嵌套类,只是为了降低包的深度,方便类的使用。

适用场景:静态内部类适用于包含类当中,但又不依赖于外在的类,不用使用外在类的非静态属性和方法,只是为了方便管理类结构而定义。在创建静态内部类的时候,不需要外部类对象的引用。

代码样例:

@Setter
@Getter
public class QualityDto {

    private Integer total;

    private Integer personCount;

    private BigDecimal qoqTotal;

    private BigDecimal qoqPersonCount;

    private List<Entity> detailList;

    @Setter
    @Getter
    @NoArgsConstructor
    @AllArgsConstructor
    @Builder
    public static class Entity {
        private String name;

        private Integer value;

        private Integer collegeId;

        private Integer familyId;

        private Integer groupId;

        @JSONField(serialize = false)
        private String sort;
    }
}

 使用方法:

QualityDto.Entity qualityStatus = QualityDto.Entity.builder().collegeId(1)
                            .familyId(2).build();

 

 

 

普通内部类:

官方说明:Non-static nested classes are called inner classes.

即内部类归属于外部类的一部分,可以自由使用外部类的所有变量和方法

代码样例:

@Setter
@Getter
public class QualityDto {

    private Integer total;

    private Integer personCount;

    private BigDecimal qoqTotal;

    private BigDecimal qoqPersonCount;

    private List<Entity> detailList;

    @Setter
    @Getter
    public class Entity {
        private String name;

        private Integer value;

        private Integer collegeId;

        private Integer familyId;

        private Integer groupId;

        @JSONField(serialize = false)
        private String sort;
    }
}

使用方法:

QualityDto.Entity qualityStatus = new QualityDto().new Entity();
posted @ 2019-12-31 14:22  朱汉卿  阅读(427)  评论(0)    收藏  举报