我不确定我是否正确理解推土机映射器中的自定义创建方法。我需要将int类型的bean属性转换为TransTypeCodebook对象实例。但我得到了:
2013-09-13 15:47:27,009 [main] ERROR org.dozer.MappingProcessor - Field mapping error -->
MapId: null
Type: null
Source parent class: cz.jaksky.dozer.a.HolderA
Source field name: transType
Source field type: class java.lang.Integer
Source field value: 0
Dest parent class: cz.jaksky.dozer.b.HolderB
Dest field name: transTypeCodebook
Dest field type: cz.jaksky.dozer.b.codebook.TransTypeCodebook
org.dozer.MappingException: Illegal object type for the method 'setTransTypeCodebook'.
Expected types:
cz.jaksky.dozer.b.codebook.TransTypeCodebook
Actual types:
java.lang.String
我的TransTypeCodebook课程
public class TransTypeCodebook extends Codebook {
private int code;
private String label;
private TransTypeCodebook(int code, String label) {
this.code = code;
this.label = label;
}
public int getCode() {
return code;
}
public String getLabel() {
return label;
}
public static TransTypeCodebook getCodebook(int code) {
TransTypeCodebook result;
switch (code) {
case 0:
result = new TransTypeCodebook(0, "Case0");
break;
case 1:
result = new TransTypeCodebook(1, "Case1");
break;
default:
result = new TransTypeCodebook(code, "Not a valid code");
}
return result;
}
}
映射器部分
<field>
<a>transType</a>
<b create-method="getCodebook">transTypeCodebook</b>
</field>
我设法通过自定义转换器解决了这个问题,但我不确定我是否理解自定义创建方法的概念,我想知道这个字符串是从哪里来的。有人能解释一下吗?
我不太确定,但要使用这样的静态方法,需要指定其完全限定名。
<b create-method="your.domain.TransTypeCodebook.getCodebook">transTypeCodebook</b>
这在推土机文档中有说明。
请注意:如果这确实是实现我所寻找的目标的唯一方法,那么我会接受基于XML的解决方案,但我更喜欢使用Dozer的Java API的解决方案。 我是推土机的新手,正在尝试了解如何使用其API。它似乎默认为字段级映射(如果字段名称匹配),并允许在字段级映射(基于字段名称)不可能或不符合应用程序需要的情况下使用自定义映射器和转换器。 我有一种情况,我的应用程序将接受一个DTO,例如,
我一直在寻找在推土机映射中设置常量值的解决方案,并且在stackoverflow上阅读了很多关于这个问题的答案。所以我决定使用推土机自定义转换器。 让我澄清一下我的情况。 我有两个具有以下字段的bean: 豆A: Bean B: 的字段应始终等于。 因此,我创建了一个自定义转换器: 以及以下映射: 它工作得很好,并将值设置为。但是这种方法看起来很糟糕: 我必须在XML映射中设置一个字段作为源,才能
问题内容: 我需要为我的项目创建一个自定义URI方案。即 -不透明的表示 -分层表示。 如何将方案添加到Java URI类?或者,如何使Java URI理解我的方案,以便可以在代码中使用它? 欢迎提供具体示例。 谢谢。 问题答案: 您确定需要创建一个新的URI方案吗? 创建特定于实现的方案被认为是不好的做法。 看到: http://infomesh.net/2001/09/urischemes h
在Dozer的帮助下,我想将映射到DTO类 但是这两种设置
考虑以下类。如何在不使用自定义转换器的情况下使用Dozer将A类转换为B类? 有人能为上述类提供推土机映射XML吗?
问题内容: 我想问一个与这个问题相同的问题,但使用SWT:是否有一种方法可以制作带有您自己的按钮图形的按钮,而不仅仅是按钮内的图像?如果不是,这是在Java中创建自定义按钮的另一种方法吗? 问题答案: public class ImageButton extends Canvas { private int mouse = 0; private boolean hit = false;