Normalize java bean property names

I have a bunch of third-party Java classes that use different attribute names to implement the same attributes:

public class Foo {
   public String getReferenceID();
   public void setReferenceID(String id);
   public String getFilename();
   public void setFilename(String fileName);
}

public class Bar {
   public String getRefID();
   public void setRefID(String id);
   public String getFileName();
   public void setFileName(String fileName);
}

I hope to solve these problems in a standardized form so that I can handle them polymorphically, so that I can use Apache BeanUtils to do these things, such as:

PropertyUtils.copyProperties(object1,object2);

Obviously, writing an adapter for each class would be trivial

public class CanonicalizedBar implements CanonicalizedBazBean {
    public String getReferenceID() {
        return this.delegate.getRefID();
    }
    // etc.
}

But I wonder if there is anything broader and more dynamic? Something will need a one to many attribute name equivalent map, as well as a proxy class, and generate an adapter?

Solution

I've never used it, but I think you're looking for dozer:

The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>