java - 未经检查的 cast Map <String, String> allPreferences

标签 java android casting gradle

我有一个关于未经检查的转换的 gradle 警告。该应用程序构建时没有错误,但我想清理所有代码问题。我在这里看到了类似的帖子 How do I cast from int to generic type Integer?

我不清楚如何检查转换的值。

.../mayday/md/model/SMSSettings.java:56: warning: [unchecked] unchecked cast
        Map<String, String> allPreferences = (Map<String, String>) sharedPreferences.getAll();
                                                                                           ^
  required: Map<String,String>
  found:    Map<String,CAP#1>
  where CAP#1 is a fresh type-variable:
    CAP#1 extends Object from capture of ?

第 56 行 Map<String, String> allPreferences = (Map<String, String>) sharedPreferences.getAll();

public static SMSSettings retrieve(Context context) {
    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
    Map<String, String> allPreferences = (Map<String, String>) sharedPreferences.getAll();
    List<String> retrievedPhoneNumbers = retrievePhoneNumbers(allPreferences);
    return new SMSSettings(retrievedPhoneNumbers, allPreferences.get(SMS_MESSAGE));
}

最佳答案

请注意,SharedPreferences can contain different objects than just Strings 如果您 100% 确定您的 SharedPreferences 对象中只有字符串,您可以忽略此警告并将 @SuppressWarnings("unchecked") 添加到您的方法或上面一行类型转换。

关于java - 未经检查的 cast Map <String, String> allPreferences,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28797747/

相关文章:

java - 在 Maven 中包含 shiro-core 和 shiro-web 后出现错误

java - 尝试仅使用嵌套的 for 循环(Java)打印一个边上有线条的递增数字金字塔

java - CollapsingToolbarLayout 内的自定义手势检测

android - 构建完成并运行,但在类android上显示错误

c# 无法将类型为 'System.Windows.Forms.Label' 的对象转换为类型 'System.Windows.Forms.TextBox'

java - 如何在没有过滤器的情况下调用 guava 谓词?

Android 以编程方式设置多个方向

Javascript 数字自动转换

java - 在不丢失类型信息的情况下将 Class<T> 转换为 Class<E extends Enum<E>> 的最简单方法

java - 欺骗 postMethod (java 中的 apache)?