首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将smallint[]转换为java short[]数组

将smallint[]转换为java short[]数组
EN

Stack Overflow用户
提问于 2020-09-07 07:33:34
回答 1查看 840关注 0票数 1

我在PostgreSQL中有一个数据库表,其中有一个名为“data”的列,并键入:smallint[]

我试图将数据从查询保存到java short[],并得到以下异常:

java.lang.ClassCastException:类[Ljava.lang.Integer;不能转换为类[I ([Ljava.lang.Integer;和[I在装入程序‘引导程序的模块java.base中])“

我的实施:

代码语言:javascript
代码运行次数:0
运行
复制
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[]数组。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-07 07:38:18

从错误消息来看,getArray似乎返回了一个Integer[]。您必须手动将其转换为short[]

代码语言:javascript
代码运行次数:0
运行
复制
Integer[] arr = (Integer[]) ar.getArray();
short[] data = new short(arr.length);
for (int i = 0; i < arr.length; ++i) {
    data[i] = arr[i].shortValue();
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63773147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档