关于Java泛型使用的问题记录
2013-07-06 00:00
489 查看
代码示例如下:
getMap方法的返回值Map,而实际在方法中是使用HashMap泛型。导致的问题就是,子类调用时不清楚Map中存储的具体类型,在这种情况下,代码在编译时不会报任何错误,但是在运行时就会报异常了:
总结:
在Java的方法中使用泛型时,最好保证方法入口参数是多态接口类,而返回值一定要是明确的类型。
public static Map getMap() { HashMap<String, String> map = new HashMap<String, String>(); 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的方法中使用泛型时,最好保证方法入口参数是多态接口类,而返回值一定要是明确的类型。
相关文章推荐
- 记录一个java.util.logging.Logger 使用中关于时间格式的问题
- 关于Hibernate中fatch=eager的bag集合(一个java List)使用Criteria查询出现重复记录的问题
- 关于Ubuntu中使用pyplot画图不能显示问题的解决方案记录
- 记录Java多线程的同步问题---synchronized关键字的使用
- 关于java中使用Session时出现空指针异常的问题
- 关于JAVA中split方法使用竖线异常的问题
- 关于使用JAVA正则表达式报java.lang.StackOverflowError错误问题
- 关于altera的fft核使用问题记录
- 关于waitpid的使用问题,记录下
- java实际开发中泛型使用需要注意的一些问题
- 声明方法java实际开发中泛型使用需要注意的一些问题
- 关于Android使用JNI报错 java.lang.UnsatisfiedLinkError: dlopen failed: 和xxx.so: has text relocations错误问题的解决
- 关于使用反射机制得到泛型的字段名的问题
- spring mvc使用过程中关于spring:bind和绑定java.util.Date遇到的问题
- 从头认识java-13.15 使用泛型时出现的问题(2)-实现参数化接口与重载
- 关于使用反射机制得到泛型的字段名的问题
- “关于使用反射机制得到泛型的字段名的问题”的解答
- 关于使用极光推送报 java.lang.ClassNotFoundException: com.google.gson.Gson”错误记录
- 关于Java使用Ant打包,编译AIDL时出错的问题
- 关于java泛型擦除反编译后泛型会出现问题