gpt4 book ai didi

java - 如何在java中获取参数的注释?

转载 作者:IT老高 更新时间:2023-10-28 21:18:39 24 4
gpt4 key购买 nike

我是一名新的 Java 程序员。以下是我的代码:

    public void testSimple1(String lotteryName,
int useFrequence,
Date validityBegin,
Date validityEnd,
LotteryPasswdEnum lotteryPasswd,
LotteryExamineEnum lotteryExamine,
LotteryCarriageEnum lotteryCarriage,
@TestMapping(key = "id", csvFile = "lottyScope.csv") xxxxxxxx lotteryScope,
@TestMapping(key = "id", csvFile = "lotteryUseCondition.csv") xxxxxxxx lotteryUseCondition,
@TestMapping(key = "id", csvFile = "lotteryFee.csv") xxxxxxxx lotteryFee)

我想获取所有归档的注释。有些字段有注释,有些没有。

我知道如何使用 method.getParameterAnnotations() 函数,但它只返回三个注解。

我不知道如何对应它们。

我希望得到以下结果:

lotteryName - none
useFrequence- none
validityBegin -none
validityEnd -none
lotteryPasswd -none
lotteryExamine-none
lotteryCarriage-none
lotteryScope - @TestMapping(key = "id", csvFile = "lottyScope.csv")
lotteryUseCondition - @TestMapping(key = "id", csvFile = "lotteryUseCondition.csv")
lotteryFee - @TestMapping(key = "id", csvFile = "lotteryFee.csv")

最佳答案

getParameterAnnotations 每个参数返回一个数组,对任何没有任何注释的参数使用一个空数组。例如:

import java.lang.annotation.*;
import java.lang.reflect.*;

@Retention(RetentionPolicy.RUNTIME)
@interface TestMapping {
}

public class Test {

public void testMethod(String noAnnotation,
@TestMapping String withAnnotation)
{
}

public static void main(String[] args) throws Exception {
Method method = Test.class.getDeclaredMethod
("testMethod", String.class, String.class);
Annotation[][] annotations = method.getParameterAnnotations();
for (Annotation[] ann : annotations) {
System.out.printf("%d annotatations", ann.length);
System.out.println();
}
}
}

这给出了输出:

0 annotatations
1 annotatations

表示第一个参数没有注解,第二个参数有一个注解。 (当然,注释本身会在第二个数组中。)

这看起来正是你想要的,所以我对你声称 getParameterAnnotations“只返回 3 个注释”感到困惑——它将返回一个数组数组。也许您正在以某种方式展平返回的数组?

关于java - 如何在java中获取参数的注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7976827/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com