Java DozerConverter抱怨其中一个类中的equals方法
我正在使用DozerConverter将字符串转换为我的一个类 代码如下所示:Java DozerConverter抱怨其中一个类中的equals方法,java,dozer,Java,Dozer,我正在使用DozerConverter将字符串转换为我的一个类 代码如下所示: class A { String property; } class B { MyType property; } class MyType { // things... @Override public boolean equals(Object obj) { return getFlatValue().equals(((MyType)obj).get
class A {
String property;
}
class B {
MyType property;
}
class MyType {
// things...
@Override
public boolean equals(Object obj) {
return getFlatValue().equals(((MyType)obj).getFlatValue());
}
}
public class MyTypeConverter extends DozerConverter<String, MyType> {
public MyTypeConverter() {
super(String.class, MyType.class);
}
@Override
public String convertFrom(MyType source, String destination) {
destination = source.getFlatValue();
return destination;
}
@Override
public MyType convertTo(String source, MyType destination) {
destination = new MyType();
destination.parseFromString(source);
return destination;
}
}
public enum E_BeanMapper {
INSTANCE;
public Mapper getMapper() {
DozerBeanMapper mapper = new DozerBeanMapper();
BeanMappingBuilder beanMappingBuilder = new BeanMappingBuilder() {
@Override
protected void configure() {
mapping(A.class, B.class).fields("property", "property", FieldsMappingOptions.customConverter(MyTypeConverter.class));
}
};
mapper.addMapping(beanMappingBuilder);
return mapper;
}
}
我做错了什么?至少,您的
equals
方法不能保证总是在MyType
的实例中传递,因此您需要对此加以防范
@Override
public boolean equals(Object obj) {
if(obj instanceof MyType) {
return getFlatValue().equals(((MyType)obj).getFlatValue());
} else {
return false;
}
}
至少,您的
equals
方法不能保证总是在MyType
的实例中传递,因此您需要对此加以防范
@Override
public boolean equals(Object obj) {
if(obj instanceof MyType) {
return getFlatValue().equals(((MyType)obj).getFlatValue());
} else {
return false;
}
}
是的,我在发布问题后就注意到了。我会试试的。是的,我一贴出问题就注意到了。我试试看。