Jus*_*one 0 java generics collections raw-types
我看到的每个地方,我看到收集的类型如此完成:
Set<String> set = new HashSet<String>();
Run Code Online (Sandbox Code Playgroud)
但是,我像这样定义我的收藏
Set<String> set = new HashSet();
Run Code Online (Sandbox Code Playgroud)
我仍然得到类型检查(我的方式只是更清洁看).
也许这在创建泛型集合时有所作为?但是,假设我只想要一个HashSet of Strings,那就不是了
Set<String> set = new HashSet();
Run Code Online (Sandbox Code Playgroud)
足够?
您在创建新集合时使用的是泛型类.
泛型类必须获取它封装的泛型类型,否则它被视为原始类型.
因此,适当声明集合值应该是:
Set<String> mySet = new HashSet<>();
Run Code Online (Sandbox Code Playgroud)
由于声明,您的JVM将能够推断出HashSet中使用的泛型类型 Set<String>
大多数IDE(例如Eclipse和ItelliJ)将使用其linters配置为在使用Raw Type类时提供警告.这个警告可以被抑制,但这被认为是一种不好的做法.
参考文献:
奖金:
| 归档时间: |
|
| 查看次数: |
1385 次 |
| 最近记录: |