Java未经检查的转换

Jim*_*ies 4 java generics warnings

我有以下代码行

this.htmlSpecialChars = this.getSpecialCharMap();
Run Code Online (Sandbox Code Playgroud)

哪里

private HashMap<String,String> htmlSpecialChars;
Run Code Online (Sandbox Code Playgroud)

但我得到一个关于未经检查的转换的警告.我该如何停止此警告?

小智 6

你得到这个是因为getSpecialCharMap()返回的对象的类型无法被编译器验证为HashMap <String,String>.继续并提供getSpecialCharMap的原型.


Law*_*Dol 5

您收到警告是因为编译器无法验证分配给htmlSpecialCharsHashMap<String,String>,因为 getSpecialChars() 方法返回的是普通的非通用 HashMap。

您应该修改您的方法以返回特定的泛型类型:

private HashMap<String,String> getSpecialCharMap() {
    return new HashMap<String,String>();
    }
Run Code Online (Sandbox Code Playgroud)