首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ClassCastException Daterange[]

ClassCastException Daterange[]
EN

Stack Overflow用户
提问于 2021-04-10 10:15:08
回答 1查看 70关注 0票数 0

我试图将DateRange []转换为包含流的数组,但它给了我一个ClassCastException错误

代码语言:javascript
复制
Array pgArray = rs.getArray("periodo_carica");
 periodo_carica = (DateRange[]) pgArray.getArray();
 List<DateRange> periodo_carica2 = new ArrayList<DateRange>();
 periodo_carica2 =
                 Arrays.stream(periodo_carica)
                 .map(DateRange2::getRange)
                 .filter(d -> DateRange2.getRange(d) != null)
                 .collect(Collectors.toList());

产出:

代码语言:javascript
复制
Connected to PostgreSQL server successfully!
Exception in thread "main" java.lang.ClassCastException: class [Ljava.lang.Object; cannot be cast to 
 class [Lorg.jfree.data.time.DateRange; ([Ljava.lang.Object; is in module java.base of loader 
'bootstrap'; [Lorg.jfree.data.time.DateRange; is in module jfreechart@1.5.0 of loader 'app')

在postgresql的数据库中,我有一个表,在java中,我在Eclipse中创建了相应的属性DateRange[],您告诉我将其设置为OBJECT[],但它是DateRange[]

代码语言:javascript
复制
CREATE TABLE public.parlamentari
(
nome character varying(100) COLLATE pg_catalog."default" NOT NULL,
partito character varying(100) COLLATE pg_catalog."default" NOT NULL,
circoscrizione character varying(100) COLLATE pg_catalog."default" NOT NULL,
data_nascita date,
luogo character varying(100) COLLATE pg_catalog."default",
titolo_studi character varying(100) COLLATE pg_catalog."default",
mandati character varying(1000)[] COLLATE pg_catalog."default",
commissioni character varying(100)[] COLLATE pg_catalog."default",
periodo_carica daterange[],
CONSTRAINT parlamentari_pkey PRIMARY KEY (nome, partito, circoscrizione),
CONSTRAINT parlamentarinomekey UNIQUE (nome)
 ,
CONSTRAINT parlamentaripartitonomekey UNIQUE (partito, nome)

 )
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-10 10:46:36

更新

错误消息告诉我们,从getArray()调用返回的值是Object[],而不是DateRange[]。当然,数组中的所有对象都可能是DateRange对象,但是数组组件类型是Object,而不是DateRange,因此必须进行两次转换。

代码语言:javascript
复制
Array pgArray = rs.getArray("periodo_carica");
Object[] periodo_carica = (Object[]) pgArray.getArray(); // cast to Object[]
List<DateRange> periodo_carica2 = new ArrayList<DateRange>();
periodo_carica2 =
                Arrays.stream(periodo_carica)
                .map(o -> (DateRange) o) // cast each element to DateRange
                .map(DateRange2::getRange)
                .filter(d -> DateRange2.getRange(d) != null)
                .collect(Collectors.toList());
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67033177

复制
相关文章

相似问题

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