You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gridgain缓存SQL查询返回[S转Short报ClassCastException如何解决

异常产生原因

  • Java中[S是原生short[](短整型数组)的类型标识,你打印的返回值类型class [S已经明确查询返回的activity字段是短整型数组对象,不是单个Short类型值
  • 代码直接将数组对象强转为单个short值,二者类型不匹配,因此抛出类型转换异常。

正确处理方式

先将返回值强转为short[]类型,再遍历数组元素添加到结果列表即可,参考代码如下:

Object xx = null;
List<Short> activityList = new ArrayList<>();
try (QueryCursor<List<?>> cursor = patientTriggerCache.query(sql)) {
    for (List<?> row : cursor) {
        xx = row.get(0);
        // 先强转为short数组
        short[] activityArr = (short[]) xx;
        // 遍历数组元素添加到列表
        for (short val : activityArr) {
            activityList.add(val);
        }
    }
}

如果有多个行的查询结果需要合并数组元素,上述写法直接适用;如果需要按行保留数组结构,可直接将short[]存入结果集合。

内容的提问来源于stack exchange,提问作者sachith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 04:00:00