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