lambda表达式中局部变量操作

2023-02-21 15:23:56 浏览数 (1)

创建一个Vo对象处理返回数据。五个图五个对象。

代码语言:java复制
/**
 * Title:
 *
 * @author Fking<fsyvip66 @ gmail.com>
 * @version 1.0.0
 * @since 2021/12/10 18:11
 */

@NoArgsConstructor
@AllArgsConstructor
@Data
@Builder
@Accessors(chain = true)
public class CountInfoVo {

    private List<DataCountInfo> dataCountInfos;

    private DataHeaderInfo dataHeaderInfos;

    private List<DataYearInfo> dataYearInfos;

    private List<DataFrequencyInfo> dataFrequencyInfos;

    private List<DataInfo> dataInfos;

    /**
     * Title: 资源概览 - 饼图数据统计
     *
     * @author Fking<fsyvip666 @ gmail.com>
     * @since 2021/12/10
     */
    @NoArgsConstructor
    @AllArgsConstructor
    @Data
    @Builder
    public static class DataCountInfo {
        private String name;
        private Long value;
    }

    /**
     * Title: 资源概览 - 头部数据统计
     *
     * @author Fking<fsyvip666 @ gmail.com>
     * @since 2021/12/10
     */
    @NoArgsConstructor
    @AllArgsConstructor
    @Data
    @Builder
    public static class DataHeaderInfo {
        private Long infoCount;
        private Long typeCount;
        private int sizeCount;
    }

    /**
     * Title: 资源概览 - 年份数据统计
     *
     * @author Fking<fsyvip666 @ gmail.com>
     * @since 2021/12/10
     */
    @NoArgsConstructor
    @AllArgsConstructor
    @Data
    @Builder
    public static class DataYearInfo {
        private String dataYear;
        private Integer yearCount;
    }

    /**
     * Title: 资源概览 - 更新频率统计
     *
     * @author Fking<fsyvip666 @ gmail.com>
     * @since 2021/12/10
     */
    @NoArgsConstructor
    @AllArgsConstructor
    @Data
    @Builder
    public static class DataFrequencyInfo {
        private String monthName;
        private Integer monthCount;
    }

    /**
     * Title: 资源概览 - 更新情况
     *
     * @author Fking<fsyvip666 @ gmail.com>
     * @since 2021/12/10
     */
    @NoArgsConstructor
    @AllArgsConstructor
    @Data
    @Builder
    public static class DataInfo {
        private String dataYear;
        private String mapName;
    }
}

Lambda表达式中不允许局部变量操作 因为Lambda是在一个线程中使用的,则使用Lambda的线程,可能会在分配该变量的线程将这个变量收回之后,去访问该变量。 使用伪局部变量int[] 变量名 = {初始值}

这段时间公司业务很忙没有及时更新。忙完这一阵会持续更细!加油!

0 人点赞