关于对象类型转换的一个问题
我现在的需要是:定义一个类型A,可以把几乎任何类型赋值给A,我就可以把A作为结果传递到别的地方,然后在别的地方再把类型转换回来——使用强制转换——使用它。
我就把这个A设为Object,传递String的时候没有问题,接收的地方使用强制转换(String)。但是碰到了个HashMap<String, String>,编译的时候就警告了,虽然不影响运行。我想采用个没有警告的方案。
警告: [unchecked] 未经检查的转换
Map<String, String> urls = (HashMap<String, String>) chunk.body;
需要: HashMap<String,String>
找到: Object
不知道泛型可不可以,T、V等等是什么意思,有什么区别?
------解决方案-------------------- 这种警告是不能避免的,想把父类转成任何子类都会有这个警告,只要你知道你的方法获取到
的会是怎样的类型,保证程序运行时不会抛
ClassCastException就行。
------解决方案--------------------
嗯 看SuppressWarnings目标范围 @Target(value={TYPE,FIELD,METHOD,PARAMETER,CONSTRUCTOR,LOCAL_VARIABLE})
可以加在除了package和annotation的任何东西前面