我经常发现自己通过放置类型完全明显注释来解决反射警告。
(def ^String foo "bar") ;; adding ^String fixes reflection warnings elsewhere
"bar"
是一个字符串,这是在编译时就可以明显知道的,因此对我来说,这似乎是在做繁重的工作,同时也可能创建出以后可能过时的东西。
有没有考虑过为这样的简单情况添加“类型推断”?
(“类型推断”可能对这个用例有点夸张)
...我可以想到至少一个反对意见:(def ^CharSequence foo "bar")
也可以准确且有用。但是,一个好的默认设置是将x的类型推断为x的类,如果用户想将x标注为其祖先之一(在这里:CharSequence,Object),则可以手动覆盖推断的默认值。