小弟一直对java中的强制类型转换心存疑虑,关于它的原理方面的东西,也希望有能力者聊聊。
平时开发的时候,我特别注意了这样一点:
简单类型的数据强制转换时,编译器一般不会给出警告提示:
Object o = new Object();
String s = (String)o;//没有warn 提示
(Map<String,List<Object>>)SessionPool.getClient().get(MemoryData.HOTEST_DPI_APPS_ID_LIST_MAP_KEY))//有异常提示所以关于这块的原理,我就不明白了。请指教!
平时开发的时候,我特别注意了这样一点:
简单类型的数据强制转换时,编译器一般不会给出警告提示:
Object o = new Object();
String s = (String)o;//没有warn 提示
(Map<String,List<Object>>)SessionPool.getClient().get(MemoryData.HOTEST_DPI_APPS_ID_LIST_MAP_KEY))//有异常提示所以关于这块的原理,我就不明白了。请指教!
解决方案 »
- ActionContext为什么没有getRequest()方法
- url参数传递 个别中文字乱码
- 数据出错新手跪求You have an error in your SQL syntax;
- hibernate 里的sql问题
- FCKeditor 浏缆带中文文件名的文件链接时出现乱码,不能打开?
- 谁能给我一个MyEclipse5.1.1序列号啊???
- 使用JavaBean连接DB2数据库时,出现错误
- ★★http://www.itebook.net/epub/oreilly/java.htm(最全最新的Orilley书籍)◆◆◆
- 哪里有stec.sfc.Win32下载
- OutOfMemoryError: PermGen space的问题
- struts2 Action方法中调用DAO类 不是404 就是500
- 数据库连接错误,这是为什么?
是因为泛型的缘故,不然也不会提示
至于类转型的问题...这个自己翻书吧...基础很重要的...
泛型的转型和类无关,提示的警告是不明确的泛型对象,因为泛型不存在于运行期,存在你转出的泛型可能和实际类型不同
从抽象到具体或者说从大范围到小范围,风险之所以只是风险,是java中抽象(大范围)类型的外表下藏匿着具体(小范围)类型的内在,未知。还有就是上面提到的编译期无转型风险提示是因为在编译期无法知道运行期变量具体类型
...
优先考虑泛型和泛型方法
List优先与数组
...