Clojure 中检测对象是否为 Java 原始数组的最佳方法是什么?
我需要这个的原因是对原始数组进行一些特殊处理,这可能看起来像:
(if (byte-array? object)
(handle-byte-array object))
它是一段对性能相当敏感的代码,因此我宁愿尽可能避免反射。
您可以使用反射一次从名称中获取类,缓存它然后
将其余部分与此进行比较
(def array-of-ints-type (Class/forName "[I"))
(def array-of-bytes-type (Class/forName "[B"))
...
(= (type (into-array Integer/TYPE [1 3 4])) array-of-ints-type)
true
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)