A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 爱上这格调 中级黑马   /  2013-11-4 20:02  /  1128 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


  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>
复制代码

评分

参与人数 1黑马币 +1 收起 理由
乔兵 + 1

查看全部评分

4 个回复

倒序浏览
15.public static <String> void printColl
你这个相当于把方法中的<String>都当成自定义的统一类型了~~<T>
回复 使用道具 举报
零下五度的水 发表于 2013-11-4 20:12
15.public static  void printColl
你这个相当于把方法中的都当成自定义的统一类型了~~ ...

对啊  我就是自定义成了String类型了所以我想着应该能用String的方法的吧
回复 使用道具 举报
我是说:
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) //前面那个统一类型标签给去了

评分

参与人数 1技术分 +1 收起 理由
To + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
零下五度的水 发表于 2013-11-4 21:06
我是说:
public static  void printColl(ArrayList al)
相当于:

哦哦  原来如此啊  谢了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马