Java泛型失效的两种情况
生活随笔
收集整理的這篇文章主要介紹了
Java泛型失效的两种情况
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
反射失效:
import java.lang.reflect.Method; import java.util.ArrayList;public class IgnoreGeneric {public static void main(String[] args) throws Exception {ArrayList<Integer> list = new ArrayList<>();list.add(2);list.add(4);list.add(1);//通過反射,忽略泛型Class<?> clazz = list.getClass();Method method = clazz.getMethod("add",Object.class);method.invoke(list,"拜拜");method.invoke(list,new Double(5));System.out.println(list); // [2, 4, 1, 拜拜, 5.0]}}Method method = clazz.getMethod("add",Object.class); Object.class表明可以插入任意類型的數(shù)據(jù),若換為其他的則會報錯。
方法傳遞失效:
import java.util.ArrayList; import java.util.List;public class invalidGeneric {public static void main(String[] args){List<Integer> list = new ArrayList<>();list.add(1);list.add(2);fuzz(list,"string");fuzz(list, new Double(3));System.out.println(list); //[1, 2, string, 3.0]}public static void fuzz(List list,Object o){list.add(o);} }總結(jié)
以上是生活随笔為你收集整理的Java泛型失效的两种情况的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 并发下HashMap头插会造成死循环情况
- 下一篇: JDBC连接mysql、创建表、操作数据