我经常发现自己通过放置显然的类型注解来解决反射警告。
(def ^String foo "bar") ;; adding ^String fixes reflection warnings elsewhere
"bar"
是一个字符串,在编译时无疑是可以知道的,因此在我看来,我正在做一些琐碎的工作,也可能创建一些可能过时的东西。
是否考虑过为这种直接的情况添加“类型推断”?
(“类型推断”可能是这个用例的夸张说法)
...我可以想象至少有一个反对意见:(def ^CharSequence foo "bar")
也可以是准确和有用的。但一个好的默认选择是推断 x 的类型是它的类 - 如果用户希望将 x 标注为其祖先之一(这里:CharSequence,Object),则可以通过手动覆盖推断的默认值。