gpt4 book ai didi

java - Dozer InstantiationException 映射 Calendar 类

转载 作者:行者123 更新时间:2023-11-30 09:57:53 25 4
gpt4 key购买 nike

我在尝试映射日期 -> 日历时遇到 InstantiationException。

简单测试如下:

    @Test
public void testConversion()
{
GregorianCalendar cal = new GregorianCalendar(2009, 2, 3);
Date sourceValue = cal.getTime();
DozerBeanMapper mapper = new DozerBeanMapper();
Object result = mapper.map(sourceValue, Calendar.class);
}

根据docs ,这是开箱即用的支持(即使 Calendar 是抽象的)。任何人都有这方面的经验并能够指出我做错了什么?

最佳答案

你是对的。这会抛出 InstantionException(我认为这是 dozer 中的错误。您会在他们的错误跟踪系统中提交它吗?)。

但是。当您转换不在根级别的日期 <--> 日历值时,它会起作用。这个测试对我有效(推土机 5.1):

    public static class Source {
private Date value;
public void setValue(Date value) {
this.value = value;
}
public Date getValue() {
return value;
}
}

public static class Target {
private Calendar value;
public void setValue(Calendar value) {
this.value = value;
}
public Calendar getValue() {
return value;
}
}


@Test
public void testConversion()
{
final GregorianCalendar cal = new GregorianCalendar(2009, 2, 3);
Source source = new Source(){{ setValue(cal.getTime());}};

DozerBeanMapper mapper = new DozerBeanMapper();
Target result = (Target) mapper.map(source, Target.class);
assertEquals(cal.getTimeInMillis(), result.getValue().getTimeInMillis());
}

关于java - Dozer InstantiationException 映射 Calendar 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1391210/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com