GWT Autobean устанавливает начальное значение созданного интерфейса

Мы используем AutoBeans для создания объектов Pojo для использования в RPC-вызовах. Каков рекомендуемый подход для Pojo, чтобы иметь значение по умолчанию или другую инициализацию класса?

Например

 public interface SamplePojo {
        // should default to 5
        int getSampleProperty();
        void setSampleProperty(int sampleProperty);
    }


    public interface ModelFactory extends AutoBeanFactory {
        AutoBean<SamplePojo> getSamplePojo();   
    }

И SamplePojo имеет свойство int, которое мы всегда хотим по умолчанию равным 5.

2 ответа

Решение

AutoBeans следует рассматривать как низкоуровневые, отображающие прямо в / из JSON. Имея это в виду, вы не хотите getSampleProperty() чтобы быть 5, вы скорее хотите обнаружить отсутствие определенного значения для свойства и использовать 5 в этом случае.

Так что если 0 (значение по умолчанию int) не является допустимым значением для свойства, тогда просто "используйте 5, если свойство равно 0". В противном случае измените тип возвращаемого значения на Integer и "используйте 5, если свойство null".

Будет ли это работать?

public interface SamplePojo {
        // should default to 5
        int getSampleProperty();
        void setSampleProperty(int sampleProperty);
    }

public class SamplePojoImpl implements SamplePojo{
    private int sampleProperty = 5
    // getters/setters
    int getSampleProperty(){ return sampleProperty;}
    void setSampleProperty(int sampleProperty){this.sampleProperty = sampleProperty;}

}

public interface ModelFactory extends AutoBeanFactory {
    AutoBean<SamplePojo> getSamplePojo(SamplePojoImpl samplePojo );   
}
Другие вопросы по тегам