fix: fast excel anno and array value

This commit is contained in:
林万程
2025-09-13 09:43:19 +08:00
parent 32be302c4a
commit de46e38d45
2 changed files with 12 additions and 1 deletions

View File

@@ -4,6 +4,7 @@ import com.intellij.openapi.project.Project;
import com.intellij.psi.JavaPsiFacade;
import com.intellij.psi.PsiAnnotation;
import com.intellij.psi.PsiAnnotationMemberValue;
import com.intellij.psi.PsiArrayInitializerMemberValue;
import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiConstantEvaluationHelper;
import com.intellij.psi.PsiDocCommentOwner;
@@ -74,6 +75,16 @@ public class AnnoDocJava extends BaseAnnoDoc<PsiJvmModifiersOwner> {
}
@NotNull Project project = value.getProject();
@NotNull PsiConstantEvaluationHelper helper = JavaPsiFacade.getInstance(project).getConstantEvaluationHelper();
if (value instanceof PsiArrayInitializerMemberValue) {
PsiAnnotationMemberValue[] initializers = ((PsiArrayInitializerMemberValue) value).getInitializers();
StringBuilder sb = new StringBuilder();
for (PsiAnnotationMemberValue initializer : initializers) {
try {
sb.append(helper.computeConstantExpression(initializer)).append(" ");
} catch (Throwable ignored) {}
}
return sb.toString();
}
@Nullable Object o = helper.computeConstantExpression(value);
if (o == null) {
return null;

View File

@@ -41,7 +41,7 @@ public abstract class AbstractSettingsState {
{"field", "io.swagger.annotations.ApiModelProperty", "value"},
{"field", "io.swagger.v3.oas.annotations.media.Schema", "title"},
{"field", "com.alibaba.excel.annotation.ExcelProperty", "value"},
{"field", "com.idev.excel.annotation.ExcelProperty", "value"},
{"field", "cn.idev.excel.annotation.ExcelProperty", "value"},
};
public boolean dirDocEffect = true;