黑马程序员技术交流社区

标题: 泛型中的疑惑 [打印本页]

作者: 王自强    时间: 2012-9-14 14:23
标题: 泛型中的疑惑

  1. import java.util.*;
  2. import java.lang.reflect.*;
  3. class Test
  4. {
  5. public static void main(String[] args)
  6. {
  7. ArrayList<String> list = new ArrayList<String>();
  8. try
  9. {
  10. Method addMethod=list.getClass().getMethod("add", String.class);

  11. //这里的String.class会报告NoSuchMethodException,
  12. //为什么?泛型已定义好为String类型了啊
  13. addMethod.invoke(list, "zhangsan");
  14. addMethod.invoke(list, "lisi");

  15. System.out.println(list);
  16. }
  17. catch (NoSuchMethodException e)
  18. {
  19. e.printStackTrace();
  20. }
  21. catch(SecurityException e)
  22. {
  23. e.printStackTrace();
  24. }
  25. catch (IllegalAccessException e)
  26. {
  27. e.printStackTrace();
  28. }
  29. catch (IllegalArgumentException e)
  30. {
  31. e.printStackTrace();
  32. }
  33. catch (InvocationTargetException e)
  34. {
  35. e.printStackTrace();
  36. }
  37. }
  38. }
复制代码

作者: 张 涛    时间: 2012-9-14 15:41
因为泛型到class之后的作用就消失了。method是从class获取的,无法获得String类型,所以会错,写成Object吧




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2