我将使用ORMLite,因为我发现它非常有用......但是,我发现了一个缺点。
我有一个具有GregorianCalendar类型属性的类,其映射如下:
@DatabaseField(dataType = DataType.DATE_STRING)
private GregorianCalendar fechaNacimiento;
当我运行我的应用程序时,它会在logcat中被该消息崩溃:
07-31 20:52:47.629:E / AndroidRuntime(11808):致命异常:主要 07-31 20:52:47.629:E / AndroidRuntime(11808):java.lang.RuntimeException:无法启动活动ComponentInfo {com.joninazio.euskofest / com.joninazio.euskofest.ui.MenuPrincipalActivity}:java.lang.IllegalArgumentException :字段类型java.util.GregorianCalendar字段FieldType:name = fechaCreacion,class = Usuario对类型com.j256.ormlite.field.types.DateStringType@40dca268无效,可能应该是类[B] 07-31 20:52:47.629:E / AndroidRuntime(11808):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2308)
OrmLite似乎不支持GregorianCalendar,因为它可以在这里看到:http://ormlite.com/data_types.shtml,它表明OrmLite的DATE对应于Java的java.util.Date ...
我的问题是支持弃用课程的原因?
你有没有改变GregorianCalendar的解决方案吗?也许将注释更改为
@DatabaseField(dataType = DataType.STRING)
提前谢谢。
答案 0 :(得分:0)
我用一招来解决了这个问题:
答案 1 :(得分:0)
Calendar类实现Serializable接口。 GregorianCalendar扩展了日历。
您可以使用以下内容声明您的字段:
@DatabaseField(dataType = DataType.SERIALIZABLE)
private GregorianCalendar fechaNacimiento;