bean函数不返回完整的属性映射

log*_*olf 1 user-interface awt clojure javabeans

继续在Clojure上爬行,现在使用Java GUI.如何获取GridBagConstrains的属性映射?该bean函数不会返回完整的地图:gridx, :gridy, :fill等等......

user=> (import '(java.awt GridBagConstraints))
java.awt.GridBagConstraints
user=> (def gbc (GridBagConstraints.))
#'user/gbc
user=> (bean gbc)
{:class java.awt.GridBagConstraints}
Run Code Online (Sandbox Code Playgroud)

一如既往地感谢您的帮助.

mis*_*off 5

我想,它发生是因为(bean)函数使用JavaBean约定.这意味着对于每个属性,你应该有getter和setter,所以在GridBagConstraint中我们没有你需要的值的getter.

您可以通过简单的点访问来获取和设置特定属性而无需getter:

user> (. gbc gridx)
-1
user> (set! (. gbc gridx 10))
10
Run Code Online (Sandbox Code Playgroud)