idea提示集合类型没有参数
在练习集合的时候,使用在idea中遇到了这样一个问题
package collection;
import java.util.*;
public class GetMap {
}
class MapDemo2
{
public static void main(String[] args)
{
Map<String,String> map = new HashMap<String,String>();
map.put("01","diyi");
map.put("02","dier");
map.put("03","disan");
map.put("04","disi");
Set<Map.Entry<String,String>> entrySet = map.entrySet();
//提示Error:(18, 12) java: 类型collection.Set不带有参数
Iterator<Map.Entry<String,String>> it = entrySet.iterator();
while(it.hasNext())
{
Map.Entry<String,String> me = it.next();
String key = me.getKey();
String value = me.getValue();
System.out.println(key+":"+value);
}
}
}
如代码所示,idea提示错误,说Error:(18, 12) java: 类型collection.Set不带有参数
一次我就在Windows命令行和eclipse中分别测试了相同的代码,结果均没有错误。开始以为是idea引入的jdk版本问题后来发现并不是,Windows命令行和eclipse以及idea用的都是jdk10.0.2
后来发现了问题:
后来找了很久才发现了问题,出现这样的问题显然是运行环境识别错误了Set类,它没有将此处的Set认定为java.Util.Set,而是认成了其他地方的Set,果然,我在相同的Collection包中发现了自定义的一个Set类(因为这个包中定义的类太多,开始没有发现)

解决办法呢,就是显示的指明引用,不要用java.util.*; 而是用java.util.Set;这样运行环境会优先寻找设个Set,就不会找错了。
package collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
import java.util.Map;
public class GetMap {
}
class MapDemo2
{
public static void main(String[] args)
{
Map<String,String> map = new HashMap<String,String>();
map.put("01","diyi");
map.put("02","dier");
map.put("03","disan");
map.put("04","disi");
Set<Map.Entry<String,String>> entrySet = map.entrySet();
//不再提示错误
Iterator<Map.Entry<String,String>> it = entrySet.iterator();
while(it.hasNext())
{
Map.Entry<String,String> me = it.next();
String key = me.getKey();
String value = me.getValue();
System.out.println(key+":"+value);
}
}
}
总结:1.引入包是尽量单点引入,这样编译更快,而且不容易类名起冲突
2.自定义名字的时候一定不要嫌麻烦,尽量定义较长的别致的有意义的名字,不要和已有的类名相同。
本文解决IDEA中集合类型参数错误提示问题,通过明确指定java.util.Set而非通配符导入,避免命名冲突,确保代码正常运行。
1901

被折叠的 条评论
为什么被折叠?



