CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

jdk 1.5 中, class Foo<T> {} 中的T是表示什么呢?

楼主ji_jian24(一半是火焰,一半是海水)2005-06-04 16:15:22 在 Java / J2SE / 基础类 提问

RT 问题点数:20、回复次数:9Top

1 楼lxleaves(飘泊的叶子)回复于 2005-06-04 16:51:16 得分 5

范型,使用这个类时编译器会提示你使用类似于   T<Object>   t   =   new   T<Object>();的方式Top

2 楼laughsmile(海边的星空)回复于 2005-06-04 17:18:04 得分 5

jdk1.5引用了C++的泛型,T可以是任意类型.Top

3 楼cat_871017(零下九度)回复于 2005-06-04 19:27:58 得分 3

泛型是5。0刚加的,可以是任意一种类型,Top

4 楼wangyaqin123(雅勤)回复于 2005-06-04 19:34:02 得分 2

是范型,可以看2004年程序员合集中的相关文章Top

5 楼maoxianwang(傻蛋)回复于 2005-06-05 01:24:41 得分 0

好爽嘿嘿Top

6 楼jzg1234(雨中夕阳)回复于 2005-06-05 01:31:30 得分 0

能不能给个例子啊   ?????Top

7 楼ji_jian24(一半是火焰,一半是海水)回复于 2005-06-05 16:56:06 得分 0

我知道是泛型,只是想知道这个字母   T   是不是可以换成其他字母?Top

8 楼sjg1981(★星の金币)回复于 2005-06-05 17:12:12 得分 5

是在J2SE   5.0新加入的特性   "泛型"  
   
  <转帖>  
  [J2SE   5.0专题][2.1]泛型  
  大凡用过C/C++的朋友对“泛型”这个词都不会陌生吧?我相信有过一些Java编码经验的朋友或多或少也遇到过使用集合类的方法时必须要手工做类型转换的情况。看下面的例子:  
   
  import   java.util.ArrayList;  
  import   java.util.Iterator;  
   
  public   class   MyGenerics   {  
   
          public   static   void   main(String[]   args)   {  
                  useNonGenerics();  
                  useGenerics();  
          }  
           
          private   static   void   useNonGenerics()   {  
                  ArrayList   aList   =   new   ArrayList();  
                  aList.add(new   Integer(7));  
                  aList.add(new   Integer(17));  
                  int   sum   =   0;  
                  Iterator   iter   =   aList.iterator();  
                  while   (iter.hasNext())   {  
                          sum   +=   ((Integer)iter.next()).intValue();  
                  }  
                  System.out.println(sum);  
          }  
           
          private   static   void   useGenerics()   {  
                  ArrayList<Integer>   aList   =   new   ArrayList<Integer>();  
                  aList.add(new   Integer(7));  
                  aList.add(new   Integer(17));  
                  int   sum   =   0;  
                  Iterator<Integer>   iter   =   aList.iterator();  
                  while   (iter.hasNext())   {  
                          sum   +=   iter.next().intValue();  
                  }  
                  System.out.println(sum);  
          }  
  }  
   
  在这个例子中我提供了两个不同方法来完成同样的事,例子本身有没有意义不重要,我只是想让你看到一些实际在Java中使用泛型的代码。  
   
  泛型的好处在于它可以避免那些我们本不需要去考虑的类型转换,并且可以提供编译期的类型安全检查。(注意,在上面的例子中,如果不使用泛型,那么我们可以把iter.next()返回的对象转换成任意类型,然后调用那个类型的方法而不会抛出任何编译期异常)同时,泛型的引入也为模板类和模板方法的出现奠定了基础。  
   
  如果有时间,建议大家把新的java.util.Collection的源码拿下来看一看,你完全可以实现自己的支持泛型的API。  
  Top

9 楼Preamble(Rubbish)回复于 2005-06-06 14:16:32 得分 0

不好用.不知道是我的实现有问题否?  
   
  比如说   写一个Comparator的子类  
  里面的比较方法  
  public   class   NodeComparator<T>   implements   Comparator<T>{  
  }  
   
  public   int   compare(T   o1,   T   o2)   {  
  //         if(T.class   instanceof   Node.class)                              
  //         return   ((String)o1).compareTo((String)o2);  
  //        
        return   ((String)o1).compareTo((String)o2);  
      }  
   
  因为是T     所以无法判断运类型.所以不能检查.  
   
  但是   如果直接   转化为String类型是不安全的   对于一个非我需要的类进行比较  
   
  Top

相关问题

  • 安装jdk后,运行.class出错?
  • jdk
  • 菜鸟问题:怎样正确设置jdk路径及class路径?
  • 我用JBUILDER生成的*.class文件怎么在JDK环境下运行?
  • class class
  • foo foo foo foo foo foo foo大家知道这是什么意思吗?最本溯源,词源探索,和和
  • 我的.class文件只有拷贝到 jdk\bin\目录下才能正确执行
  • 请问如何将servlet的.java文件编译成.class文件,我用了jdk的javac命令不好使阿???
  • 简单问题-如何让jdk编译后将*.class文件存放在指定文件夹
  • 用jdk编译Java能不能让编译生成的.class文件自动保存到一个文件夹下?

关键词

  • j2se
  • alist
  • 泛型
  • 类型
  • iter
  • 例子
  • sum
  • arraylist
  • 方法
  • 类

得分解答快速导航

  • 帖主:ji_jian24
  • lxleaves
  • laughsmile
  • cat_871017
  • wangyaqin123
  • sjg1981

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo