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)