我在PostgreSQL中有一个数据库表,其中有一个名为“data”的列,并键入:smallint[]
我试图将数据从查询保存到java short[]
,并得到以下异常:
java.lang.ClassCastException:类[Ljava.lang.Integer;不能转换为类[I ([Ljava.lang.Integer;和[I在装入程序‘引导程序的模块java.base中])“
我的实施:
String sql = "SELECT * FROM table"
res = executeQuery(stmt, temp);
ArrayList<VO> vos = new ArrayList<>();
while (res.next()) {
VO vo = new VO();
Array ar = res.getArray("data");
// vo has a private member data : short[]
vo.setData((short[]) ar.getArray());
}
异常被抛出@vo.setData((short[]) ar.getArray());
,其中我试图将java.sql.Array
转换为short[]
数组。
发布于 2020-09-06 23:38:18
从错误消息来看,getArray
似乎返回了一个Integer[]
。您必须手动将其转换为short[]
:
Integer[] arr = (Integer[]) ar.getArray();
short[] data = new short(arr.length);
for (int i = 0; i < arr.length; ++i) {
data[i] = arr[i].shortValue();
}
https://stackoverflow.com/questions/63773147
复制相似问题