我正在使用一个实现自己的Array类的JDBC库。为了使用所述Array,他们将其转换为Object[]。
https://github.com/housepower/ClickHouse-Native-JDBC/blob/master/src/test/java/com/github/housepower/jdbc/QueryComplexTypeITest.java#L120
我使用的是Clojure,不知道如何将该类强制转换为Java数组。
(vec (.getArray results "array-row"))
Unable to convert: class com.github.housepower.jdbc.ClickHouseArray to Object[]
我相信您可以尝试迭代数组并手动合成结果:
(let [array (.getArray results "array-row")]
(for [item array]
(turn-item-into-a-map item)))
或者只是
(mapv turn-item-into-a-map jdbc-array)
如果您不想转换项目,请使用identity
函数。
即使这样的数组不支持迭代,您仍然可以通过循环/reur中的索引访问其项目:
(let [array (get-jdbc-array...)
size (.count array)]
(loop [i 0
result []]
(if (= i size)
result
(let [item (.get array i)]
(recur (inc i) (conj result item))))))
这不是Java代码在调用<code>吗。getArray方法,并将结果强制转换为Object[]
array,而不是反过来?查看<code>com.github.housepower.jdbc的源代码。ClickHouseArray似乎扩展了java.sql。通过
,它不是com.github.housepower.jdbc.wrapper数组
。SQLArray对象[]
。正确的
Clojure只需要执行运行时反射来解析对象上的方法,所以您不必担心强制转换。你得到的异常中可能有更多信息?尝试使用*e
获取REPL中的最后一个异常。如果您可以发布一个更完整的测试用例,我们可能会更好地了解问题?
问题内容: 我是Java的新手,想知道double转换为int cast如何工作吗?我知道,只需将低32位转换为int就很容易了,但是将double(64位)转换为int(32位)呢?来自二进制的double中的那64位是Double- precision浮点格式(Mantissa),那么它如何在内部转换为int? 问题答案: 所有这些都记录在JLS的5.1.3节中。 第一步,将浮点数转换为lon
问题内容: 我想在一个程序包中打印所有的类名,并在每个程序包中打印相应的属性及其数据类型。 在一个代码中,我能够以字符串形式获取类名。在另一个代码中,我可以使用以下方法获取属性及其数据类型 但是我想合并两个代码。由于在第一个代码中我以字符串的形式获得了类名,我无法使用,因为这里是类型。 因此,我需要一种将“ 类名”从类型转换为类型的方法。 我试过了,但是没有用。 问题答案: 确保是完全合格的类名,
问题内容: 我有一个WSDL文件(或更确切地说,它的URL)。我需要将其转换为Java类。我还需要为其描述的Web服务提供测试。我是Web服务的新手,所以有人可以告诉我如何将WSDL转换为Java吗? 我使用Eclipse JEE Kepler。也许有一些插件可以自动执行此操作? 问题答案: 在Eclipse Kepler中,生成Web Service Client类非常容易,您可以通过执行以下步
我有一个WSDL文件(或者更准确地说,它的URL)。我需要将其转换为Java类。我还需要为它描述的web服务提供测试。我是web服务新手,有人能告诉我如何将WSDL转换为Java吗? 我使用Eclipse-JEE-Kepler。也许有一些插件可以自动执行此操作?
问题内容: 我有一个想要表示为C#类的复杂JSON对象。我在名为“ Form”的父类上有一个良好的开端,但是如何代表不同类型的集合(请参见下面的“ elements”对象)? 这是JSON对象: 我开始的课程看起来像这样: 如何处理“ elements”属性以获得所需的JSON输出? 我正在WCF 4.0和web.config中的以下属性一起使用:automaticFormatSelectionE