HashMap的声明是否应始终包含类型,例如
private HashMap<String, String> test = new HashMap<String, String>();
Run Code Online (Sandbox Code Playgroud)
因为我看到很多书中的例子<String, String>被遗漏了,所以我们只有:
private Map test= new HashMap();
Run Code Online (Sandbox Code Playgroud)
哪一个'正确'?
hvg*_*des 11
它应该看起来像
private Map<String, String> test = new HashMap<>();
Run Code Online (Sandbox Code Playgroud)
因此,两者的元素都是正确的.;)Map是定义行为的接口,而HashMap是一个提供行为的实现.
如果您想要更强的类型安全性,则应使用泛型参数.虽然它们不是绝对必要的,但它们在减少应用程序错误方面增加了很多价值.由于在Java 5中引入了泛型,因此之前的示例将不会显示泛型参数.
在"钻石操作符" <>与Java 7的推出-这意味着你可以在泛型类型说明符的第二次出现减少,只是<>.
从Java 5开始,最好的选择是使用带有<>括号的泛型.这可以让您知道Map用于键和值的类型,并执行一些编译时检查以防止添加不正确的类型.它还可以使您不必在get从地图中将值转换为正确的类型.
如果要允许键和值的所有类,可以使用<?, ?>泛型声明.但是,在通用类型上根据需要进行定制几乎总是最好的.
此外,它可以规避通用检查,但它们肯定比什么都好.
| 归档时间: |
|
| 查看次数: |
6645 次 |
| 最近记录: |