我经常发现自己需要通过放置显式的注解来解决反射警告,这些注解的类型是完全显而易见的。
(def ^String foo "bar") ;; adding ^String fixes reflection warnings elsewhere
“bar”是一个String,这在编译时是可以明确知道的,所以我感觉我正在做一些费力不讨好的事情,也可能会在以后变得过时。
是否考虑过为这种简单的案例添加“类型推断”?
(“类型推断”这个术语可能对这个用例有些夸张)
...我可以想象至少一个反对意见: (def ^CharSequence foo "bar")
也是一种准确且有用的情况。但一个好的默认设置是推断 x 的类型为 x 的类 - 如果用户想将 x 标注为其祖先之一(此处:CharSequence,Object),则可以手动覆盖推断出的默认设置。