尽管对Clojure中的Java构造函数有类型提示,但仍存在反射警告

克里斯

尽管有提示类型,以下代码也给了我一个反射警告。

(set! *warn-on-reflection* true)

(IllegalArgumentException.
  ^String (with-out-str (print "hi")))

警告:

Reflection warning ... 
call to java.lang.IllegalArgumentException ctor 
can't be resolved.

该代码是从一个更复杂的例子中提取并简化的,该例子中漂亮的打印了一个任意对象with-out-str我正在使用Clojure 1.10.0。

合金

这是CLJ-865它不特定于with-out-str:在任何形式的宏调用中添加类型提示通常会丢弃它。典型的解决方法是您的答案:定义一个本地保存值,人为地引入非宏形式进行注释。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Clojure给出反射警告临时类型提示

Java反射调用具有原始类型的构造函数

如何在clojure中添加typehint以修复“无法解析ctor”反射警告,即调用构造函数?

Clojure中的函数类型提示

在Clojure中获取函数的参数类型提示

VSCode 中构造函数的 Python 类型提示

如何将构造函数类型与具有Scala基本类型的Java反射进行匹配?

具有反射的构造函数中的类数组

如何通过反射在Java中调用构造函数?

将多个带有类型提示的对象动态传递到PHP 7中的类的构造函数中

在Java中是否可以使用反射创建没有no-arg构造函数的类的“空白”实例?

java通过反射访问Integer构造函数

反射调用空arg构造函数的编译器警告

JAVA:不确定是否要在反射中使用泛型类型构造函数

类型提示和多个构造函数

调用 Widget 的构造函数,尽管它没有构造函数

构造函数中的反射设置字段值

通过Scala中的反射确定构造函数参数计数和类型

Clojure中的seq函数警告

有没有办法通过反射识别 Java 16 记录的规范构造函数?

具有构造函数中泛型类型的Java类的Scala继承

Java语法中具有多个类型参数列表的构造函数

当有多个可能的类型构造函数时,如何使用数据类型中的特定构造函数

卡在通用类的clojure中的类型提示

在构造函数中传递java.lang.Integer的参数时,发生NoSuchMethodException(反射)

Java:使用类型参数访问私有构造函数

派生类不能访问私有成员(尽管构造函数是在基类中定义的)

尽管在cpp中有定义,但LNK2019构造函数中未解析的外部符号

如何限制开发人员使用反射来访问Java中的私有方法和构造函数?