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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张源锋 中级黑马   /  2013-4-1 17:58  /  1363 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 无奈№追夜 于 2013-4-1 19:36 编辑
  1. public interface  Iterator<T>
复制代码
里面的T是什么,是一个字符,还是一个对象?????

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1 新人加油

查看全部评分

5 个回复

倒序浏览
T是一个对象类型,你可以把它看成是Object类型。

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
泛型:jdk1.5版本以后出现的一个安全机制。表现格式:< >
好处:
1:将运行时期的问题ClassCastException问题转换成了编译失败,体现在编译时期,程序员就可以解决问题。
2:避免了强制转换的麻烦。
只要带有<>的类或者接口,都属于带有类型参数的类或者接口,在使用这些类或者接口时,必须给<>中传递一个具体的引用数据类型。

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
<T>是用来接收类型的,将集合中要存储的数据类型作为参数传递到<>即可

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1 新人加油

查看全部评分

回复 使用道具 举报
一般地,给一个类定义泛型时,使用一对尖括号<>,尖括号里注明的是什么,就是指什么类型;
如果这样的类型根本不存在,那么这个泛型类型指的就是任意类型。
如:
class Test<String> {...} 意思是给Test类指定一个泛型,泛型的类型是String类型。
class Test<Date>{...} 意思是给Test类指定泛型,泛型的类型是Date类型。
class Test<U>{...} 意思是给Test类指定泛型,泛型的类型是任意类型。
  1. public interface  Iterator<T> {...}
复制代码
以上是代表你给一个名为Iteractor的接口的定了泛型,因为不存在名为T的类,所以,这泛型的类型就是指任意类型。
  1. import java.util.Date;

  2. //定义个接口,并给它定义泛型:x
  3. interface Dog<X> {
  4.         public void say(X x);
  5. }

  6. public class HotDog<X> implements Dog<X> {
  7.         
  8.         public static void main(String[] args) {
  9.                 //创建一个实例对象,并指定一个具体的泛型类型:String
  10.                 HotDog<String> h1 = new HotDog<String>();
  11.                 String o = new String("wang wang");
  12.                 h1.say(o);
  13.                
  14.                 //创建另个实例对象,并指定另一个具体的泛型类型:Date
  15.                 HotDog<Date> h2 = new HotDog<Date>();
  16.                 Date d = new Date();
  17.                 h2.say(d);
  18.         }

  19.         @Override
  20.         public void say(X u) {
  21.                 System.out.println(u);
  22.                
  23.         }
  24. }
复制代码

评分

参与人数 1技术分 +2 收起 理由
陈丽莉 + 2

查看全部评分

回复 使用道具 举报
是表示类型的,如果你实现了这个接口,可以同时给定这个类型,这样便于编译器在编译阶段对你的对象进行检查,如果你迭代的对象不是你定义的这个类型,编译器会报错
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马