Java DozerConverter抱怨其中一个类中的equals方法

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

我正在使用DozerConverter将字符串转换为我的一个类

代码如下所示:

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;
    }
}

是的,我在发布问题后就注意到了。我会试试的。是的,我一贴出问题就注意到了。我试试看。