科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件JDK5.0的11个主要新特征

JDK5.0的11个主要新特征

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

增强了java的类型安全,可以在编译期间对容器内的对象进行类型检查,在运行期不必进行类型的转换。

作者:中国IT实验室 来源:中国IT实验室 2007年8月21日

关键字: JDK

  • 评论
  • 分享微博
  • 分享邮件

1           泛型(Generic)

1.1          说明

增强了java的类型安全,可以在编译期间对容器内的对象进行类型检查,在运行期不必进行类型的转换。而在j2se5之前必须在运行期动态进行容器内对象的检查及转换减少含糊的容器,可以定义什么类型的数据放入容器


ArrayList<Integer> listOfIntegers; // <TYPE_NAME> is new to the syntax

Integer integerObject;

listOfIntegers = new ArrayList<Integer>(); // <TYPE_NAME> is new to the syntax

listOfIntegers.add(new Integer(10)); // 只能是Integer类型

integerObject = listOfIntegers.get(0); // 取出对象不需要转换 

1.2          用法

声明及实例化泛型类:

HashMap<String,Float> hm = new HashMap<String,Float>();

//不能使用原始类型

GenList<int> nList = new GenList<int>();  //编译错误 

J2SE 5.0目前不支持原始类型作为类型参数(type parameter)

定义泛型接口:

public interface GenInterface<T> {

    void func(T t);

定义泛型类:

public class ArrayList<ItemType> { ... }

public class GenMap<T, V> { ... }

例1:

public class MyList<Element> extends LinkedList<Element>

{

       public void swap(int i, int j)

       {

              Element temp = this.get(i);

              this.set(i, this.get(j));

              this.set(j, temp);

       }

      

       public static void main(String[] args)

       {

              MyList<String> list = new MyList<String>();

              list.add("hi");

              list.add("andy");

              System.out.println(list.get(0) + " " + list.get(1));

              list.swap(0,1);

              System.out.println(list.get(0) + " " + list.get(1));

       }

例2:

public class GenList <T>{

       private T[] elements;

       private int size = 0;

       private int length = 0;

 

       public GenList(int size) {

              elements = (T[])new Object[size];

              this.size = size;

       }

 

       public T get(int i) {

              if (i < length) {

                     return elements[i];

              }

              return null;

       }

      

       public void add(T e) {

              if (length < size - 1)

                     elements[length++] = e;

       }

泛型方法:

public class TestGenerics{

       public <T> String getString(T obj) { //实现了一个泛型方法

              return obj.toString();

       }

      

       public static void main(String [] args){

              TestGenerics t = new TestGenerics();

              String s = "Hello";

              Integer i = 100;

              System.out.println(t.getString(s));

              System.out.println(t.getString(i));

              }

查看本文来源
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章