ユーザーIDを長く保存する必要があります。私は強制的に長いタイプの設定でユーザーIDを保存したい。どのような問題は、サーバが整数型のユーザIDとして私に22を割り当てるかどうかです。私はそれを保存のために優先させます。桁の長さが短いため、代わりにputIntメソッドの下に保存します。私はそれを取得した場合、整数はキャストできず、長時間キャストできないと言います。以下は、ユーザIDを保存する私のprefrence utilクラスのメソッドのオーバーロードです。変数に 'long'型の変数を強制的に指定する
public int read(String valueKey, int valueDefault) {
return mPreferences.getInt(valueKey, valueDefault);
}
public void save(String valueKey, int value) {
mEditor.putInt(valueKey, value);
mEditor.commit();
}
public long read(String valueKey, long valueDefault) {
return mPreferences.getLong(valueKey, valueDefault);
}
public void save(String valueKey, long value) {
mEditor.putLong(valueKey, value);
mEditor.commit();
}
私は長いユーザーIDを保存して同じものを取得します。それは、ユーザーIDの長さが整数である可能性があると予測し、putの下に保存します。mEditor.putInt(valueKey、value); ..あなたが欲求不満を理解することを願っています。可能な解決策と考えることができるのは、これらのメソッドに価値を渡すのではなく、そのことです。私はちょうどputLongメソッドを使用して明示的にユーザーIDを保存..または他のソリューションはありますか?
キャスト、またはリテラルの表記を使用22L' – CollinD
@Usman Ghauri次を使用します。Long.valueOf(int);. –
@CollinDとtushar:ありがとうございますが、これは1つのケースを解決するかもしれませんが、intの場合に問題を引き起こす可能性があります。保存と読み込みは、他のすべてのint/long環境設定に使用する一般化されたメソッドです。だからこれは最善の解決策ではないかもしれません。 –