将此代码与 DatastoreService 一起使用时,我得到 ClassCastException Long acnnot be cast to integer in fromEntity。这是正常行为吗?(在本地计算机上使用 Eclipse 的谷歌插件进行调试时,我得到了这种行为)
class UserData {
private int _integerval = 0;
private String _stringval = "";
public Entity getEntity() {
Entity ret = new Entity( "User", key );
ret.setProperty( "property1", _integerval );
ret.setProperty( "property2", _stringval );
return ret;
}
public static UserData fromEntity( Entity ent ) {
UserData ret = new UserData();
ret._integerval = (Integer)ent.getProperty("property1");
ret._stringval = (String)ent.getProperty("property2");
return ret;
}
}
我是否总是必须像这样捕获这个异常:
try
{
ret._integerval = (Integer)ent.getProperty("property1");
}
catch( ClassCastException ex ) {
Long val = (Long)ent.getProperty("property1");
ret._integerval = val.intValue();
}
或者也许所有的数值都只存储很长时间?我是否必须将 _integerval 类型更改为 long 以避免此异常?