次のサンプルコードがあります。アプリケーションは初回で正常にインストールされます。ただし、再インストールするとエラーがスローされます。
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LinkedHashSet<String> planets = new LinkedHashSet<String>();
planets.add("Earth");
SharedPreferences prefs = getPreferences(0);
prefs.edit().putStringSet("planets", planets).commit();
prefs = getPreferences(0);
planets = (LinkedHashSet<String>) prefs.getStringSet("planets", new LinkedHashSet<String>());
}
}
アプリケーションの再インストール時に発生したエラーを以下に貼り付けました。
Caused by: java.lang.ClassCastException: java.util.HashSet cannot be cast to java.util.LinkedHashSet at com.example.test.MainActivity.onCreate(MainActivity.java:12)
LinkedHashSet
保存したを にキャストできない理由を理解したいLinkedHashSet
。HashSet
また、Android によって自動的に変換されるのはなぜですか?