私は新しい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()
関数の使用方法は知っていますが、3つの注釈を返すだけです。
どう対応するかわかりません。
私は次の結果を期待します:
_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
は、注釈を持たないパラメータには空の配列を使用して、パラメータごとに1つの配列を返します。例えば:
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
これは、最初のパラメーターに注釈がなく、2番目のパラメーターに1つの注釈があることを示しています。 (もちろん、注釈自体は2番目の配列になります。)
それはまさにあなたが望んでいるように見えるので、getParameterAnnotations
は「3つの注釈のみを返す」というあなたの主張に混乱しています。配列の配列が返されます。おそらく、返された配列をどうにかして平坦化しているのでしょうか?