我经常发现自己通过放置类型完全明确的注解来处理反射警告。
(def ^String foo "bar") ;; adding ^String fixes reflection warnings elsewhere
"bar"
是一个 String,这一点在编译时就可以明确知道,这似乎意味着我在做粗活,也可能后来会过时。
是否有考虑过为这种简单的情况添加“类型推断”?
(“类型推断”可能对这个用例来说是一个夸张的术语)
...我想至少有一个反对意见:(def ^CharSequence foo "bar")
也可以是准确且有用的。但一个好的默认做法是将 x 的类型推断为其 x 的类 - 如果用户想将 x 标注为其祖先之一(在这里是 CharSequence,Object),则可以手动覆盖推断的默认值。