У меня есть объект, который содержит свойство enum. Это свойство может быть любым из моих типов перечислений в моей кодовой базе:
public enum AutomobileType {
CAR, TRUCK, MOTORCYCLE
}
public enum BoatType {
ROW_BOAT,YACHT,SHIP
}
@Entity
public class FooBar {
@Enumerated(value=EnumType.ORDINAL)
private Enum enumValue;
public void setEnumValue(Enum value) { ... }
public Enum getEnumValue() { ... }
}
Ошибка с исключением: «Неверный тип данных: для входной строки:» [ B @ f0569aв настоящее время этот класс не поддерживает использование в нескольких процессах. Это будет добавлено позже. "Так что само по себе это не похоже ...
Глядя на документы SharedPreferences , говорится:
" Примечание: в настоящее время этот класс не поддержка использования в нескольких процессах. Это будет добавлено позже ».
Таким образом, само по себе это не похоже на Thread Safe. Однако какие гарантии даются в отношении commit () и apply ()?
Например:
synchronized(uniqueIdLock){
uniqueId = sharedPreferences.getInt("UNIQUE_INCREMENTING_ID", 0);
uniqueId++;
sharedPreferences.edit().putInt("UNIQUE_INCREMENTING_ID", uniqueId).commit();
}
Будет ли гарантировано, что в этом случае uniqueId всегда был уникальным?
Если нет, есть ли лучший способ отслеживать уникальный идентификатор для сохраняющегося приложения?