如何设置';int';在应用程序引擎数据存储中,Java模型属性是否为其原始未设置状态,而不是为零?
表示数据存储实体的Java模型类的一个属性由int值表示:如何设置';int';在应用程序引擎数据存储中,Java模型属性是否为其原始未设置状态,而不是为零?,java,google-app-engine,jdo,Java,Google App Engine,Jdo,表示数据存储实体的Java模型类的一个属性由int值表示: int trackedUserId; 此值在应用程序执行过程中设置为特定用户id。然后在其他点上,我想将它重置为由空值表示的原始未设置状态。但我能看到的重置它的唯一方法是将它设置为零。JDO中是否有其他方法将属性重置为未设置状态 Integer trackedUserId; trackedUserId = 1; //voodoo happens //so you reset to null trackedUserId = (Integ
int trackedUserId;
此值在应用程序执行过程中设置为特定用户id。然后在其他点上,我想将它重置为由空值表示的原始未设置状态。但我能看到的重置它的唯一方法是将它设置为零。JDO中是否有其他方法将属性重置为未设置状态
Integer trackedUserId;
trackedUserId = 1;
//voodoo happens
//so you reset to null
trackedUserId = (Integer) null;
正如您所说,它的原始状态由null值表示,因此如果您希望它再次为null,只需将其设置为null即可
正如您所说,它的原始状态由一个null值表示,因此如果您希望它再次为null,只需将其设置为null。
int
是一个原始值,因此不能将其设置为null
。根据JDO文档:
如果将数据存储实体加载到
对象,并且没有属性
对于对象的某个字段和
字段的类型是可为空的
单值类型,字段设置为
无效的将对象保存回时
数据存储,空属性
在数据存储中设置为
空值。如果该字段不是
可为空的值类型,正在加载实体
没有相应的属性
抛出异常。这不会发生
如果实体是从
与用于重新创建
实例,但如果JDO
类更改,或者如果实体
使用低级API创建
而不是JDO
如果您正在创建一个包含
int
字段的新记录,并且没有指定值,那么它将具有Java对此类字段的默认值,即0。int
是一个基本值,因此不能设置为null
。根据JDO文档:
如果将数据存储实体加载到
对象,并且没有属性
对于对象的某个字段和
字段的类型是可为空的
单值类型,字段设置为
无效的将对象保存回时
数据存储,空属性
在数据存储中设置为
空值。如果该字段不是
可为空的值类型,正在加载实体
没有相应的属性
抛出异常。这不会发生
如果实体是从
与用于重新创建
实例,但如果JDO
类更改,或者如果实体
使用低级API创建
而不是JDO
如果您正在创建一个新记录,其中包含一个
int
字段,并且没有指定值,那么它将具有Java对此类字段的默认值,即0。太糟糕了trackedUserId=null
在Java中是非法语句。如果将int
替换为Integer
,则可以将其设置为null。太糟糕了trackedUserId=null
在Java中是非法语句。如果将int
替换为Integer
,则可以将其设置为null。嗯,在Java中,“int”永远不是“unset”。另一方面,整数可以是.Errm,在Java中,“int”永远不会是“unset”。另一方面,整数可以是。