gpt4 book ai didi

mapping - Dozer,自定义转换器上的 InstantiationException

转载 作者:行者123 更新时间:2023-12-01 07:28:06 26 4
gpt4 key购买 nike

我写了自己的客户转换器:

public class MyFancyCustomConverter extends DozerConverter<Integer, AnObject>
{
public MyFancyCustomConverter(Class<Integer> prototypeA, Class<AnObject> prototypeB)
{
super(prototypeA, prototypeB);
}

@Override
public AnObject convertTo(Integer source, AnObject destination)
{
// TODO: do something
return null;
}

@Override
public Integer convertFrom(AnObject source, Integer destination)
{
// TODO: do something
return 0;
}
}

还有我的 mapping.xml:
<mapping>
<class-a>java.lang.Integer</class-a>
<class-b>xyz.AnObject</class-b>
<field custom-converter="xyz.MyFancyCustomConverter" custom-converter-param="hello">
<a>this</a>
<b key="my.key">this</b>
</field>
</mapping>

但我得到这个异常(exception):

org.dozer.MappingException: java.lang.InstantiationException: xyz.MyFancyCustomConverter

知道我做错了什么吗?我想这是因为 MyFancyCustomConverter 没有默认转换器。但是我不能添加一个,因为 DozerConverter 没有一个......

最佳答案

public MyFancyCustomConverter(Class<Integer> prototypeA, Class<AnObject> prototypeB)
{
super(prototypeA, prototypeB);
}

应该
public MyFancyCustomConverter()
{
super(Integer.class, AnObject.class);
}

父类(super class)需要知道两个类的运行时类型,并且因为类型删除,需要传入一个类型 token 。

关于mapping - Dozer,自定义转换器上的 InstantiationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13473964/

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