Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android studio,这不是从共享首选项中检索字符串并将其转换为哈希集的正确方法吗<;字符串>;?_Java_Android_Casting_Sharedpreferences - Fatal编程技术网

Java Android studio,这不是从共享首选项中检索字符串并将其转换为哈希集的正确方法吗<;字符串>;?

Java Android studio,这不是从共享首选项中检索字符串并将其转换为哈希集的正确方法吗<;字符串>;?,java,android,casting,sharedpreferences,Java,Android,Casting,Sharedpreferences,我的代码是: HashSet<String> set = (HashSet<String>) sharedPreferences.getStringSet("notes" , null); 在任何情况下,您都不能将字符串强制转换为集(或除直接实现字符串的类型以外的任何类型,例如对象、可比或可序列化) 必须显式编写代码才能将字符串转换为集,例如(例如)使用逗号字符将其拆分,并将拆分的每个元素添加到您创建的集。不共享引用。getStringSet()返回一组字符串,我尝试将

我的代码是:

HashSet<String> set = (HashSet<String>) sharedPreferences.getStringSet("notes" , null);
在任何情况下,您都不能将
字符串
强制转换为
(或除直接实现
字符串
的类型以外的任何类型,例如
对象
可比
可序列化


必须显式编写代码才能将
字符串
转换为
,例如(例如)使用逗号字符将其拆分,并将拆分的每个元素添加到您创建的集。

不共享引用。getStringSet()返回一组字符串,我尝试将其转换为字符串的哈希集,而不是字符串本身。我在一个教程中看到了这一点,它起到了作用,但对我来说不起作用。文档中规定,如果有一个名为
getStringSet
的首选项实际上不是集合,那么它将抛出一个
ClassCastException
。看起来您有一个首选项,该名称实际上是一个字符串,而不是一组字符串。
java.lang.ClassCastException: java.lang.String cannot be cast to java.util.S

 Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Set
        at android.app.SharedPreferencesImpl.getStringSet(SharedPreferencesImpl.java:293)
        at com.example.notes.MainActivity.onCreate(MainActivity.java:60)