オブジェクトのプロパティを繰り返し処理し、それぞれの注釈をチェックする便利な方法はありますか?Groovyのプロパティ注釈イントロスペクション
答えて
あなたは、このようにそれを行うことができます。この場合
// First, declare your annotation
import java.lang.annotation.*
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface MyAnnot {
}
// Then, define your class with it's annotated Fields
class MyClass {
@MyAnnot String fielda
String fieldb
@MyAnnot String fieldc
}
// Then, we will write a method to take an object and an annotation class
// And we will return all properties of the object that define that annotation
def findAllPropertiesForClassWithAnotation(obj, annotClass) {
obj.properties.findAll { prop ->
obj.getClass().declaredFields.find {
it.name == prop.key && annotClass in it.declaredAnnotations*.annotationType()
}
}
}
// Then, define an instance of our class
MyClass a = new MyClass(fielda:'tim', fieldb:'yates', fieldc:'stackoverflow')
// And print the results of calling our method
println findAllPropertiesForClassWithAnotation(a, MyAnnot)
が、これはプリントアウト:
[fielda:tim, fieldc:stackoverflow]
はそれが役に立てば幸い!
ありがとう、これは便利でした!私はGroovyから期待できる超エレガントではありませんが、それは動作します:) – Pavlo
@ pavlo同じもののjavaバージョンに比べて優雅? –
は使用Groovyの2.4.5は、これはそれを行うための方法のようです: - > obj.class.declaredFields.find {フィールド ' デフfindAllPropertiesForClassWithAnotation(OBJ、annotClass){ obj.properties.findAll {小道具 - > field.name == prop.key && field.declaredAnnotations * .annotationType()。(annotClass)が含まれてい }} } ' –
- 1. Springブート:クラスorg.springframework.cloud.netflix.zuul.ZuulConfigurationの注釈付きメソッドのイントロスペクションに失敗しました
- 2. ビルドは、Groovyの1.8で失敗は、Hibernate JPA注釈
- 3. Python型注釈:プロパティに注釈を付ける方法はありますか?
- 4. Spring mvc注釈検証のカスタム注釈
- 5. 注釈とリソースと自動注釈付き注釈
- 6. JPA 2.0フィールド注釈対メソッド注釈
- 7. Morris.jsに注釈/注釈を追加
- 8. (注釈)
- 9. 注釈
- 10. サイズイメージピンの注釈
- 11. スウィフトマップキットの注釈
- 12. Nashornの注釈
- 13. ユニットテストの注釈?
- 14. 式の注釈
- 15. Objectifyfilterの注釈
- 16. Intellijのアイデア:getterの代わりにプロパティのJPA注釈
- 17. @JsonIgnoreのプロパティと注釈のないプロパティの違いは何ですか?
- 18. グループ注釈が
- 19. 360ビデオ注釈
- 20. C#データ注釈
- 21. Guice @ Nullable注釈
- 22. Roboguice Assisted注釈
- 23. BeSimple SoapBundle - 注釈:
- 24. @IdClass JPA注釈
- 25. Grails @Mock注釈
- 26. @Where注釈
- 27. EJB注釈
- 28. 注釈混乱
- 29. HTML注釈テキストボックス
- 30. 注釈パラメータ -
あるとは思いません。たぶん、あなたが達成しようとしていることについて、より多くの情報を提供することができます。 –