服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

在eclipse 3.1体验j2se 5.0新特性七(图)


  
 在eclipse 3.1体验j2se 5.0新特性七(图)(图一)


  
图3.2.1 使用类向导创建范型类

  
  使用eclipse接口向导创建范型接口
  
 在eclipse 3.1体验j2se 5.0新特性七(图)(图二)

  
图3.2.2 使用接口向导创建范型接口

  
  3.2.4范型方法
  
  类型参数(type parameter)不仅仅可以用来声明范型类或者范型接口, 也可以用来声明范型方法, 而且这种声明的范型方法可以用在非范型类中, 声明范型方法的一般格式是
  
  清单3.2.5 范型方法的一般形式
  
  return-type method-name(parameter-list) {}
  
  清单3.2.6 范型方法示例
  
  public string getstring(t obj) {
   return obj.tostring();
  }
  
  3.2.5 受限范型
  
  受限范型是指类型参数的取值范围是受到限制的。
  
  extends关键字不仅仅可以用来声明类的继承关系,也可以用来声明类型参数(type parameter)的受限关系。例如,我们只需要一个存放数字的列表, 包括整数(long, integer, short), 实数(double, float),不能用来存放其他类型, 例如字符串(string)。
  
  也就是说, 要把类型参数t的取值范型限制在number极其子类中.在这种情况下, 我们就可以使用extends关键字把类型参数(type parameter)限制为数字。
  
  清单3.2.7 受限范型示例
  
  public class limited {
  public static void main(string[] args) {
  limited number;  //正确
  limited str;    //编译错误
  }
  }
  
  在eclipse 3.1中, 上例中的编译错误信息如下图所示
  
在eclipse 3.1体验j2se 5.0新特性七(图)(图三)

  
图3.2.3 由于受限范型导致的编译错误

  
  3.3 在程序中使用范型
  
  3.3.1在程序中使用范型类
  
  在创建范型类的对象的时候, 和创建普通对象基本类似, 必须提供具体的类类型来替代类型参数t (j2se 5.0目前不支持原始类型作为类型参数(type parameter)).
  
  清单3.3.1, 使用范型类
  
  //如果需要整型的列表
  genlist integerlist = new genlist();
  //如果需要字符型的列表
  genlist strlist = new genlist();
  //不能使用原始类型
  genlist nlist = new genlist(); //编译错误
  
  3.3.2 使用范型解决类型安全性问题
  
  使用范型实现的列表是类型安全的, 下列破坏类型安全语句会在编译的时候检查出来。 把鼠标放在错误标记上, eclipse 3.1中的错误提示就会显示,如下图所示:

扫描关注微信公众号