黑马程序员技术交流社区

标题: 一个关于泛型的问题 [打印本页]

作者: 爱上这格调    时间: 2013-11-4 20:02
标题: 一个关于泛型的问题

  1. <P>import java.util.*;
  2. class GenericDemoNew
  3. {
  4. public static void main(String[] args)
  5. {
  6. ArrayList<String> al = new ArrayList<String>();

  7. al.add("abc");
  8. al.add("abb");
  9. al.add("aba");

  10. printColl(al);
  11. }
  12. public static <String> void printColl(ArrayList<String> al)
  13. {
  14. Iterator<String> it = al.iterator();

  15. while (it.hasNext())
  16. {
  17. System.out.println(it.next().length());
  18. }
  19. }

  20. }</P>
  21. <P>printColl方法我已经明确了String类型那么为什么不能使用length()方法?</P>
复制代码

作者: 零下五度的水    时间: 2013-11-4 20:12
15.public static <String> void printColl
你这个相当于把方法中的<String>都当成自定义的统一类型了~~<T>
作者: 爱上这格调    时间: 2013-11-4 20:20
零下五度的水 发表于 2013-11-4 20:12
15.public static  void printColl
你这个相当于把方法中的都当成自定义的统一类型了~~ ...

对啊  我就是自定义成了String类型了所以我想着应该能用String的方法的吧
作者: 零下五度的水    时间: 2013-11-4 21:06
我是说:
public static <String> void printColl(ArrayList<String> al)
相当于:
public static <T> void printColl(ArrayList<T> al)
<T>.length() //这个系统自然是不能解读的

想让编译器知道你传的是String的泛型该写成
public static void printColl(ArrayList<String> al) //前面那个统一类型标签给去了
作者: 爱上这格调    时间: 2013-11-4 22:02
零下五度的水 发表于 2013-11-4 21:06
我是说:
public static  void printColl(ArrayList al)
相当于:

哦哦  原来如此啊  谢了




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