Java 8反復可能アノテーションをサポートする方法を理解しようとしています。Java 8反復可能アノテーション
次のとおりです。 https://blog.idrsolutions.com/2015/03/java-8-repeating-annotation-explained-in-5-minutes/
は、それが完璧に動作します。
しかし、私がこの例を修正し、Carクラスの@Manufacturerを追加すると、その単一の注釈を読み取ることができません。したがって、繰り返されるアノテーションの出現が1つしかない場合、それは読み取ることができません。
そう持つ:
@Manufacturer("Range Rover")
public class Car {
}
Manufacturer[] a = Car.class.getAnnotationsByType(Manufacturer.class);
ここサイズは車でNPEがあるだろう、ここで0
と
Cars cars = Car.class.getAnnotation(Cars.class);
for(Manufacturer car: cars.value())
System.out.println(car.value());
になります。..
それはなぜですか?
リフレクションでアノテーションにアクセスするには、 '@Retention(RUNTIME)'とマークする必要があります。あなたの車の注釈はこれを持っていますか? –
はい、確かに問題はないとは言えませんが、複数の注釈でクラスに注釈を付けると機能しますが、1つしかない場合は取得できません。 – darku