第二十四条 消除非受检警告


用泛型编程,会遇到许多编译器警告,例如 非受检强制转化警告、非受检方法调用警告、非受检普通数组创建警告 以及 非受检转换警告。大多数非受检警告很容易消除,少部分警告比较难以消除。但是,对我们而言,我们要尽可能地消除每一个非受检警告。因为消除了所有警告,就可以保证代码是类型安全的;如果无法消除警告,同时可以这部分代码是类型安全的,可以用一个@
SupperessWarnings("unchecked")注解来禁止这条警告。SupperessWarnings注解可以用在任何粒度级别中,但有个原则是应该尽可能小的范围内使用SupperessWarnings注解。不要在整个类上使用SupperessWarnings,这么做可能会掩盖重要的警告,很容易给人一种错觉,觉的整个代码是安全的,实际上不一定安全。

java 1.8 之前, ArrayList<String> list = new ArrayList<>(); 我们这样创建一个集合,会报警告线,'<>' operator is not allowed for source level below 1.7,我们必须在后面的泛型也加上对象类型,即 ArrayList<String> list = new ArrayList<String>(); 但是从1.8起,java支持了泛型的简略写法,即 ArrayList<String> list = new ArrayList<>();这种是常规写法,反而如果写成了 ArrayList<String> list = new ArrayList<String>();会提示 type argument String can be replaced with <>,是在在变化,要与时俱进。

一开始写代码,可能会报警告线的地方比较多,但随着经验的提升,可以逐步减少,直至为零。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值