डेटास्टोर सेवा के साथ इस कोड का उपयोग करते समय मुझे क्लासकास्टएक्सप्शन लॉन्ग एन्नोट को एंटीटी से पूर्णांक में डाला जा सकता है। क्या यह सामान्य व्यवहार है?कॉलिंग सेट int के साथ प्रॉपर्टी लेकिन getProperty रिटर्न Google ऐप इंजन पर लगातार स्टोरेज
try
{
ret._integerval = (Integer)ent.getProperty("property1");
}
catch(ClassCastException ex) {
Long val = (Long)ent.getProperty("property1");
ret._integerval = val.intValue();
}
या हो सकता है सभी संख्यात्मक मान के रूप में जमा हो जाती है:
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;
}
}
मैं हमेशा इस तरह इस अपवाद को पकड़ने के लिए है (मैं जब ग्रहण के लिए गूगल प्लगइन के साथ स्थानीय कंप्यूटर पर डिबगिंग इस व्यवहार मिलता है) सिर्फ लंबा? क्या इस उत्सर्जन से बचने के लिए मुझे _integerval प्रकार को लंबे समय तक बदलना है?
ही। Java.lang.ClassCastException प्राप्त करें: java.lang.Long java.lang.Integer पर नहीं डाला जा सकता है। – Dmitry