java - Android studio,这不是从共享首选项中检索字符串并将其转换为 hashset<string> 的正确方法吗?

标签 java android casting sharedpreferences

我的代码是:

HashSet<String> set = (HashSet<String>) sharedPreferences.getStringSet("notes" , null);

我遇到了这个异常:

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)

最佳答案

在任何情况下,您都不能String强制转换为Set(或除了String类型之外的任何类型) code> 直接实现,例如 ObjectComparableSerialized)。

您必须显式编写代码将String转换Set,例如(例如)按逗号字符拆分它并添加拆分到您创建的集合中的每个元素。

关于java - Android studio,这不是从共享首选项中检索字符串并将其转换为 hashset<string> 的正确方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59460074/

相关文章:

java - Java 继承是否会创建一个隐藏的父对象?

jquery - 如何在div中动态添加滚动条?

android - 在eclipse中启动一个从android开源项目下载的项目

android - 了解 SurfaceHolder 概念

C# 类型转换问题

java - 基于同一应用程序的两个版本的移动应用程序

java - "java/lang/NoClassDefFoundError: java/lang/Object"运行JNI程序时

C++ - 字节数组到值的平台独立函数,反之亦然

c - union 到 unsigned long long int 转换

java - 对于有关构建搜索引擎的学术项目,什么是基于 Java 的优秀爬虫?