如何将java.sql.Array转换为整数数组

问题描述

大家好,我为这个简单的问题所困扰。

我正在尝试从我的Postgres数据库中加载一个整数数组。

我的代码

Array a = rs.getArray("my_field");

int[] b = (int[])a.getArray();

显示的异常:

java.lang.classCastException: class [Ljava.lang.Integer; cannot be cast to class [I ([Ljava.lang.Integer; and [I are in module java.base of loader 'bootstrap')

如何将java.sql.Array转换为int []数组或数组列表?

解决方法

您需要将其强制转换为Integer的数组:

Array a = rs.getArray("my_field");
Integer[] b = (Integer[])a.getArray();

请注意,如果数据库中的列为a,则null将是null,因此应在调用a.getArray()之前进行检查。