(import [java.lang.annotation Retention RetentionPolicy Target ElementType] [javax.xml.ws WebServiceRef WebServiceRefs]) (definterface Foo (foo [])) ;; annotation on type (deftype ^{Deprecated true Retention RetentionPolicy/RUNTIME javax.annotation.processing.SupportedOptions ["foo" "bar" "baz"] javax.xml.ws.soap.Addressing {:enabled false :required true} WebServiceRefs [(WebServiceRef {:name "fred" :type String}) (WebServiceRef {:name "ethel" :mappedName "lucy"})]} Bar [^int a ;; on field ^{:tag int Deprecated true Retention RetentionPolicy/RUNTIME javax.annotation.processing.SupportedOptions ["foo" "bar" "baz"] javax.xml.ws.soap.Addressing {:enabled false :required true} WebServiceRefs [(WebServiceRef {:name "fred" :type String}) (WebServiceRef {:name "ethel" :mappedName "lucy"})]} b] ;; on method Foo (^{Deprecated true Retention RetentionPolicy/RUNTIME javax.annotation.processing.SupportedOptions ["foo" "bar" "baz"] javax.xml.ws.soap.Addressing {:enabled false :required true} WebServiceRefs [(WebServiceRef {:name "fred" :type String}) (WebServiceRef {:name "ethel" :mappedName "lucy"})]} foo [this] 42)) (seq (.getAnnotations Bar)) (seq (.getAnnotations (.getField Bar "b"))) (seq (.getAnnotations (.getMethod Bar "foo" nil)))