(本答案现在包括两种工作解决办法,一种基于我最初的想法,即:intern
,另一种基于下述建议:使用c.c.import-static
。 我猜测,我需要稍后清理,但现在我可以花更多的时间。
选取静态田:
(filter #(bit-and java.lang.reflect.Modifier/STATIC (.getModifiers %))
(.getFields YourClass))
www.un.org/Depts/DGACM/index_french.htm 注:该轨道未经测试,特别是,I m无法确定nil
in .get
; 试验java.lang。 外地代码>,见与你的班次做什么。
<><>上>
Ok, 实际上是intern
based approach is not that misreadability-wise:
user> (map #(intern *ns* (symbol (str "integer-" (.getName %))) (.get % java.lang.Integer))
(filter #(bit-and java.lang.reflect.Modifier/STATIC
(.getModifiers %))
(.getFields java.lang.Integer)))
(# user/integer-MIN_VALUE # user/integer-MAX_VALUE # user/integer-TYPE # user/integer-SIZE)
user> integer-MIN_VALUE
-2147483648
user> integer-MAX_VALUE
2147483647
user> integer-TYPE
int
user> integer-SIZE
32
www.un.org/Depts/DGACM/index_french.htm
将关于<代码>clojure.contrib的知识与上述内容结合起来:
user> (map #(eval `(import-static java.lang.Integer ~(symbol (.getName %))))
(filter #(bit-and java.lang.reflect.Modifier/STATIC
(.getModifiers %))
(.getFields java.lang.Integer)))
(# user/MIN_VALUE # user/MAX_VALUE # user/TYPE # user/SIZE)
user> MIN_VALUE
-2147483648
user> MAX_VALUE
2147483647
user> TYPE
int
user> SIZE
32
它使用<代码>eval......,因此很难达到“技能性能”,实际上可以读懂,使用<代码>intern加以详细表述。 <>m>(实际上不是......) www.un.org/Depts/DGACM/index_french.htm 如果我上面的草图不正确,可以给你适当的想法。