原创

lombok和静态内部类组合使用报错

1、现象

image-20231115210354605

2、测试代码

package com.timevale.sterna.doctemplate.core.domain.support;

import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.timevale.sterna.doctemplate.core.domain.support.TestBean.FillDocumentBO.PreFillValuesDTO;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;

/**
 * 功能说明:TODO
 *
 * @author fengqingyang
 * @since 2023-11-15 14:02
 */
@Data
public class TestBean {
    private FillDocumentBO fillDocumentBO;

    public static List<PreFillValuesDTO> handlePreFillValues(
        List<PreFillValuesDTO> preFillValuesDTOS) {
        if (org.apache.commons.collections.CollectionUtils.isEmpty(preFillValuesDTOS)) {
            return Lists.newArrayList();
        }
        Map<String, PreFillValuesDTO> preFillValuesDTOMap = Maps.newHashMap();
        for (PreFillValuesDTO preFillValuesDTO : preFillValuesDTOS) {
            String fieldId = preFillValuesDTO.getFieldId();
            String fieldKey = preFillValuesDTO.getFieldKey();
            if (StringUtils.isNotBlank(fieldId)) {
                preFillValuesDTOMap.put(fieldId, preFillValuesDTO);
            }
            if (StringUtils.isNotBlank(fieldKey)) {
                preFillValuesDTOMap.put(fieldKey, preFillValuesDTO);
            }
        }
        return preFillValuesDTOMap.values().stream().collect(Collectors.toList());
    }

    @Data
    public static class FillDocumentBO {

        private String docId;
        private List<String> waitFillFields;
        private List<PreFillValuesDTO> preFillValues;

        @Data
        public static class PreFillValuesDTO {

            private String fieldId;
            private String fieldKey;
            private String fieldValue;

        }
    }
}

3、根因

import com.timevale.sterna.doctemplate.core.domain.support.TestBean.FillDocumentBO.PreFillValuesDTO;

这个import是报错的根因,解决办法是去掉这一句,然后将对应使用静态内部类的地方换成全限定名

正文到此结束
本文目录