Mar*_*per 5 java types declaration hashmap
我有一个函数,声明如下:
public synchronized void update(HashMap<String, Comparable> data)
Run Code Online (Sandbox Code Playgroud)
data包含字符串和整数,但Comparable会发出警告
Comparable is a raw type. References to generic type Comparable<T> should be
parameterized
Run Code Online (Sandbox Code Playgroud)
由于我没有过多地发现警告,问题是,是否有正确的方法,我不想压制警告.
预先感谢!马库斯
这应该会让编译器满意:
public synchronized void update(HashMap<String, Comparable<Object>> data)
Run Code Online (Sandbox Code Playgroud)
ObjectString是和的最具体的超类型Integer。您的代码也有改进的空间。首先依赖Map接口,而不是具体HashMap实现。其次,如果您确实不需要该Comparable功能,只需使用Map<String, Object>. 最后但并非最不重要的一点是,避免多类型集合并更喜欢强类型。
“ [...]data 包含字符串和整数[...]String ” - 如果它只是从to 的映射Integer:
public synchronized void update(HashMap<String, Integer> data)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2767 次 |
| 最近记录: |