Mixins и аннотации Джексона - PullRequest
0 голосов
/ 29 мая 2018

В настоящее время у нас есть несколько миксинов для наших объектов данных, чтобы аннотации не попадали в объекты данных.Так, например,

public class SomeDataObj {
    private int a;

    public int getA() { return this.a; }

    public void setA(final int a) { this.a = a; }
}

public interface SomeDataObjMixin {
    @JacksonXmlElementWrapper(useWrapping = false)
    @JacksonXmlProperty(localName = "A")
    int getA();

    @JacksonXmlElementWrapper(useWrapping = false)
    @JacksonXmlProperty(localName = "A")
    void setA(int a);
}

Тогда в нашем классе объектного сопоставления у нас есть

import com.fasterxml.jackson.dataformat.xml.XmlMapper;

public class OurXmlMapper extends XmlMapper {


    public OurXmlMapper(final ConfigurableCaseStrategy caseStrategy) {
        setPropertyNamingStrategy(caseStrategy);
        setSerializationInclusion(Include.NON_NULL);

        //yadda yadda

        addMixin(SomeDataObj.class, SomeDataObjMixin.class);

        // etc etc

}

Однако по разным причинам я хотел бы добавить новую аннотацию к приватному полю в данныхобъект, а не получатель или установщик.Есть ли способ сделать это через миксин для поддержания этого разделения?Я попытался создать базовый класс как миксин (не интерфейс) и добавил к нему приватное поле с новой аннотацией.Это не достигло того, что я искал.Есть идеи?

1 Ответ

0 голосов
/ 30 мая 2018

Использование класса Бетона в качестве миксина

...