消除unchecked cast Warning】的更多相关文章

在Java中,经常会将一个Object类型转成自己想要的Map.List等等.通常的做法是: Object obj = ....; Map<String, String> castMap = (HashMap<String, String>) obj; 在这里会产生unchecked cast warning,有代码洁癖的就会想办法干掉它.解决办法就是在方法上添加一个注解@SuppressWarnings("unchecked") ,比较优雅的方案就是提供一个工…
遇到个这个提示:Unchecked cast from Iterator to Iterator String Iterator<String> keys = data.keys(); 修改为: Iterator<?> keys = data.keys(); String name = (String) keys.next(); 在获取值的时候才进行类型转换…
首先,java语言室类型安全的,通常我们遇到这个问题是出现在Object转化为目标类型时, 这个转化并不是安全的.这个问题普遍认为因为使用了jdk1.5或者1.6的泛型, request.getAttribute("***")得到的是一个默认为Object的类型,当把他们转成List<***>时, 编译器认为有可能会出错,所以提示这个类型安全. 但是具体如何解除这个警告呢,以下是大家普遍用的取消警告的方法(不过危险并没有解除) 一:方法上添加@SuppressWarning…
表明Object转化为ArrayList这个转化并不是安全的.. 编译的时候需要加入修饰符才能正常编译(具体是那个修饰符..不记得了.^_^),否则会提示有警告 当然这只是一个警告,如果楼主自信这个转化是没问题的,就可以在其所在函数前加上注解@SuppressWarnings("uncheck")这样就可以去掉那条难看的提示警告的小黄线了.. 但是不鼓励这么做,楼主还是应该使用安全的类型转换…
第 26 条:请不要使用原生态类型 声明中具有一个或多个类型参数的类或者接口,就是泛型(generic). 例如List接口只有单个类型参数E, 表示列表的元素类型.这个接口全称List<E>,泛型类和接口统称为泛型(generic type). 每一种泛型都定义一个原生态类型(raw type),即不带任何实际类型参数的泛型名称. 它的存在主要是为了兼容泛型之前的代码.   如果使用原生态类型,就失去了泛型在安全性和描述性方面的优势. 如果使用像List这样的原生态类型,就会失掉类型安全性,…
使用泛型编程时,会遇到许多编译器警告,如:非受检强制转化警告,非受检方法调用警告,非受检普通数组创建警告,费受精转换警告.这次的内容就是遇到这些警告的时候你该怎么办 PS:非受检警告就是代码上黄色的感叹号  1.首先,要尽可能地通过泛型控制消除每一个非受检警告.这意味着你将不会在运行时出现ClassCastException异常  2.如果无法消除警告,同时可以证明引起警告的代码类型是安全的,可以用一个@SuppressWarnings(“unchecked”)注解来禁止这条警告.但它只是给你一…
-..使用泛型编程时,会遇到许多编译器警告,如:非受检强制转化警告,非受检方法调用警告,非受检普通数组创建警告,费受精转换警告.这次的内容就是遇到这些警告的时候你该怎么办. PS:非受检警告就是代码上黄色的感叹号 1.首先,要尽可能地通过泛型控制消除每一个非受检警告.这意味着你将不会在运行时出现ClassCastException异常 2.如果无法消除警告,同时可以证明引起警告的代码类型是安全的,可以用一个@SuppressWarnings("unchecked")注解来禁止这条警告.…
  在编写C++动态库的过程中,我们常常会听到某个要求:请隐藏动态库头文件里类接口里的成员变量!或者自己在编写动态库时,突然意识到自己好像让调用者看到的信息太多了,而这些信息根本无需被调用者看到,往往调用者只需要接口函数而已,所以给他们接口函数就可以了.   暴露动态库头文件类接口里的成员变量有很多坏处:   1.增加头文件更新次数.如果成员变量不被隐藏,则每次修改成员变量都需要给调用者更新头文件.   2.暴露给用户太多信息.编写库的目的一个是方便,另一个就是私密性,让类的实现部分在用户端不可…
Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将近8年的时间,但随着Java 6,7,8,甚至9的发布,Java语言发生了深刻的变化. 在这里第一时间翻译成中文版.供大家学习分享之用. 27. 消除非检查警告 使用泛型编程时,会看到许多编译器警告:未经检查的强制转换警告,未经检查的方法调用警告,未经检查的参数化可变长度类型警告以及未经检查的转换警告. 你使…
5.1.9. Unchecked Conversion Let G name a generic type declaration with n type parameters. There is an unchecked conversion from the raw class or interface type (§4.8) G to any parameterized type of the form G<T1,...,Tn>. There is an unchecked conver…