Java - Warning: Unchecked cast from object to array list

Warning: Unchecked cast from object to array list

本文地址:http://blog.csdn.net/caroline_wendy

警告发生在对象(Object)强制转换为数组(ArrayList)类型,如:

infos = (ArrayList<VideoInfo>) data.getData();

因为对象转换为数组类型,未经过检查,有一定危险.

使数组对象强制转换,如ArrayList<?>,比较容易控制风险。

但是,为了书写简便和适配其他不规范接口,这么做是可以的。

可以在方法(method)前,进行警告抑制(SuppressWarning),即

@SuppressWarnings("unchecked”)

参考: http://stackoverflow.com/questions/509076/how-do-i-address-unchecked-cast-warnings

时间: 2024-10-26 13:28:56

Java - Warning: Unchecked cast from object to array list的相关文章

Type safety: Unchecked cast from Object to ArrayList

表明Object转化为ArrayList这个转化并不是安全的.. 编译的时候需要加入修饰符才能正常编译(具体是那个修饰符..不记得了.^_^),否则会提示有警告 当然这只是一个警告,如果楼主自信这个转化是没问题的,就可以在其所在函数前加上注解@SuppressWarnings("uncheck")这样就可以去掉那条难看的提示警告的小黄线了.. 但是不鼓励这么做,楼主还是应该使用安全的类型转换

将Object转换成List&lt;?&gt;,避免Unchecked cast: &#39;java.lang.Object&#39; to &#39;java.util.List&lt;java.lang.String&gt;&#39;

java中如果需要将一个object转成list,大部分人会直接使用强制类型转换:(List<String>) obj这样.这样强制转换编译会提示Unchecked cast: 'java.lang.Object' to 'java.util.List<java.lang.String>',编译器的意思该强制类型转换并未做类型校验,强制转换并不安全,可能会抛出异常导致程序崩溃.在很多博客中有人会建议用@SuppressWarnings("unchecked")解

消除unchecked cast Warning

在Java中,经常会将一个Object类型转成自己想要的Map.List等等.通常的做法是: Object obj = ....; Map<String, String> castMap = (HashMap<String, String>) obj; 在这里会产生unchecked cast warning,有代码洁癖的就会想办法干掉它.解决办法就是在方法上添加一个注解@SuppressWarnings("unchecked") ,比较优雅的方案就是提供一个工

java.lang.ClassCastException: Ljava.lang.Object; cannot be cast to com.entity.Advertisem异常

今天一不小心就碰到了这样的问题,以前从来没有碰到过,在网上搜了很多办法,思路正确,但是还是要根据自己的程序改变. 一开始写的是hql语句进行统计每个月的数据,但是试了很久,程序一直提醒hql语句异常,没办法,只能修改查询语句了,就改成了sql语句进行统计. 错误就由此产生了,一发不可收拾啊: java.lang.ClassCastException: Ljava.lang.Object; cannot be cast to com.entity.Advertisem这个异常解决办法很简单,首先要

How to cast List&lt;Object&gt; to List&lt;MyClass&gt; Object集合转换成实体集合

List<Object> list = getList(); return (List<Customer>) list; Compiler says: cannot cast List<Object> to List<Customer> 不能将Object集合强制转换成实体集合! you can always cast any object to any type by up-casting it to Object first. in your case:

java 实现往oracle存储过程中传递array数组类型的参数

注:本文来源于 <  java 实现往oracle存储过程中传递array数组类型的参数  > 最近项目中遇到通过往存储过程传递数组参数的问题, 浪费了N多个小时,终于有点头绪. 具体的代码就不写上了,因为项目中存储过程的调用方法全部是封装好的(好像现在都这样,都姓3层,嘿嘿) 原理: 1.一维数组 A.单纯的一维数组的话,直接建立一个table类型就可以 1 TYPE TYPE_VARCHAR AS TABLE OF VARCHAR2(200); 2.多维数组 A.多维数组就要稍加修改了,如

实现一个函数clone,使JavaScript中的5种主要的数据类型(包括Number、String、Object、Array、Boolean)进行值复制

实现一个函数clone,可以对JavaScript中的5种主要的数据类型(包括Number.String.Object.Array.Boolean)进行值复制. 1 /** 对象克隆 2 * 支持基本数据类型及对象 3 * 递归方法 */ 4 function clone(obj) { 5 var o; 6 switch (typeof obj) { 7 case "undefined": 8 break; 9 case "string": o = obj + &q

读javascript高级编程07-引用类型、Object、Array

一.引用类型 ECMAScript是支持面向对象的,可以通过引用类型描述一类对象所具有的属性和方法. 创建对象实例的方法时是用new 操作符加构造函数:var p=new Person(). 二.Object类型 1.创建Object实例两种方式: 使用new操作符跟Object构造函数. var o = new Object(); o.name = 'dami'; o.age = 25; 使用对象字面量表示法,推荐这种方式,代码量小而且看上去有封装的感觉. var o = { name: 'd

【转】javascript Object使用Array的方法

原文: http://www.cnblogs.com/idche/archive/2012/03/17/2403894.html Array.prototype.push push向数组尾部添加一项并更新length ,返回数组长度. 如果Object使用push会怎样? 看下面代码, obj好像数组一样工作了.length会自动更新. var push = Array.prototype.push;var obj = {};push.call(obj, "hello"); // 返回