使用clojure查找带注释的方法

时间:2013-09-07 16:59:51

标签: class reflection clojure annotations

如何使用clojure在java类中找到所有已弃用的(或任何其他注释)方法?

(filter #(.isAnnotationPresent % java.lang.Deprecated) (.getMethods (type java.util.Date)))

返回空列表,因为(type java.util.Date)返回java.lang.Class。我如何获得正确的课程?

1 个答案:

答案 0 :(得分:2)

请忽略类型:

(filter #(.isAnnotationPresent % java.lang.Deprecated) 
         (.getMethods java.util.Date))

现在如果你想从字符串中做到,那就做吧

(filter #(.isAnnotationPresent % java.lang.Deprecated) 
         (.getMethods (Class/forName "java.util.Date"))

type用于获取 的类型,现在因为符号被解析为实际的类,所以符号的类型是java.lang.Class < / p>