博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于Java泛型使用的问题记录
阅读量:6266 次
发布时间:2019-06-22

本文共 715 字,大约阅读时间需要 2 分钟。

  hot3.png

代码示例如下:

public static Map getMap() {	HashMap
map = new HashMap
(); map.put("hello", "1234"); return map;} public static void test() { Integer i = (Integer) getMap().get("hello"); System.out.println(i);} public static void main(String[] args) { test();}

        getMap方法的返回值Map,而实际在方法中是使用HashMap泛型。导致的问题就是,子类调用时不清楚Map中存储的具体类型,在这种情况下,代码在编译时不会报任何错误,但是在运行时就会报异常了:

Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer	at com.suntek.test.thread.test1.Thread1.test(Thread1.java:23)	at com.suntek.test.thread.test1.Thread1.main(Thread1.java:28)

总结:

     在Java的方法中使用泛型时,最好保证方法入口参数是多态接口类,而返回值一定要是明确的类型。

转载于:https://my.oschina.net/czg/blog/142864

你可能感兴趣的文章
MySQL 的instr函数
查看>>
Hibernate的核心对象关系映射
查看>>
接口与抽象类的使用选择
查看>>
if __name__ == '__main__'
查看>>
CF 375D. Tree and Queries【莫队 | dsu on tree】
查看>>
Maven最佳实践 划分模块 配置多模块项目 pom modules
查看>>
Hadoop学习笔记——WordCount
查看>>
Unity应用架构设计(4)——设计可复用的SubView和SubViewModel(Part 1)
查看>>
Java-Spring-获取Request,Response对象
查看>>
opencv项目报错_pFirstBlock==pHead解决办法
查看>>
MySQL日志
查看>>
Oracle性能优化之Oracle里的执行计划
查看>>
电脑如何连接远程服务器?听语音
查看>>
使用Xcode 查看objective-C的汇编代码
查看>>
Vue.js——60分钟快速入门
查看>>
设计模式 - 模板方法模式(template method pattern) 具体解释
查看>>
mysql判断一个字符串是否包含某子串 【转】
查看>>
a bad dream
查看>>
FD_CLOEXEC用法及原因_转
查看>>
element UI 的学习一,路由跳转
查看>>