このコードを DatastoreService で使用すると、ClassCastException Long acnnot be cast to integer in fromEntity が発生します。それは正常な動作ですか?(Eclipse用のGoogleプラグインを使用してローカルコンピューターでデバッグすると、この動作が発生します)
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 に変更する必要がありますか?