当前位置: 代码迷 >> J2SE >> ecplise总是有警告解决办法
  详细解决方案

ecplise总是有警告解决办法

热度:40   发布时间:2016-04-24 14:07:37.0
ecplise总是有警告
不知道为什么ecplise总是对
HashMap   map   =   new   HashMap();      
map.put( "s_search ",s_search);
map.put( "s_searchNm ",s_searchNm);
这样的代码给以警告提示,就是左边列号旁边有小的黄叹号。很烦人,不知道怎么才能让它消失。


------解决方案--------------------
你可以在问题列表上点右键-快速修复,也可以设置ecplise,忽略警告
------解决方案--------------------
改写成:
Map <String, Object> map = new HashMap <String, Object> ();
------解决方案--------------------
Map、List、Set 等集合框架在 JDK 1.5 以上的版本中都应加上泛型参数,像 Map 应为 Map <K, V> ,K 表示键的类型、V 表示值的类型,比如说 HashMap <String, String> map = new HashMap <String, String> (); ,只能存放键为 String 类型,值为 String 的数据了,不能存放其他类型的数据,在取出数据时也可以不用进行强制类型转换了,增强了数据的安全性。

使用泛型也有助于使用 foreach 进行遍历,

for(Map.Entry <String, String> entry : map.entrySet()) {
  System.out.println(entry.getKey() + " --> " + entry.getValue());
}

不建议采用楼上三位的方法,不要忽略警告。
------解决方案--------------------
eclipse中自定义警告:

窗口-> 首选项-> java-> 编译器-> 错误/警告

然后自定义哪些编译时需要警告就可以了
------解决方案--------------------
也可以在方法前添加
@SuppressWarnings(value={ "unchecked "})

但是Warning一般不用去掉,若是觉得烦人,那是自己的习惯
一个项目中有很多Warning是正常现象
------解决方案--------------------
jdk1.5 及以上版本里 对集合对象的泛型参数的要求

如果你还是想使用jdk1.4里的那种风格: 工程属性 -> Java Compiler -> 勾选Enable project specific setting 然后选择Compiler compliance level 为 1.4
------解决方案--------------------
to: zdjray

如果都去忽略这些警告的话,那还不如不用 1.5 的版本,既然用了 1.5 的版本,就不能忽略它的警告。

再说了,我不认为加上泛型参数之后会浪费多少时间,相反不使用泛型参数,你就得花时间进行强制类型转换,这些难道就不算时间?这样看来(不去管类型安全问题),使用泛型可以帮我们减少代码量。

至于标准,JDK 1.5 所有的集合框架都加上了泛型,我想 Java 架构师的用意很明显,否则这个重要的新增特性的优势就不能充分体现了。我想 Java 采用了泛型,并不是想让我们忽略它的吧!

★★ 强烈地不赞同所有关于忽略警告和改编译级别的观点,也不赞同“一个项目中有很多Warning是正常现象”的观点。
  相关解决方案