泛型-java编程思想笔记

1,泛型定义
    泛型,即参数化类型,使得代码更加的通用。不在局限于某个类或者接口,使得方法更加的松耦合。
2,泛型的目的
    泛型的目的之一就是用来指定容器类要持有什么类型的对象,而且由编译器保证类型的正确性。
    泛型的核心理念就是告诉编译器你想使用什么类型,然后编译器帮你处理一切细节。
如下的三段代码,完全可以看出使用泛型的优势:

package com.jing.test1;
public class Automobile {
    private Automobile a;
    /**
     * @return the a
     */

    public Automobile getA() {
        return a;
    }
    /**
     * @param a
     *            the a to set
     */

    public void setA(Automobile a) {
        this.a = a;
    }
}

  

 package com.jing.test1;
public class Holder2 {
    private Object a;
    /**
     * @return the a
     */

    public Object getA() {
        return a;
    }
    /**
     * @param a
     *            the a to set
     */

    public void setA(Object a) {
        this.a = a;
    }
    
    public static void main(String[] args) {
        
        Holder2 h2 = new Holder2();
        h2.setA(new Automobile());
    }
}

package com.jing.test1;
public class Holder3<T> {
    private T a;
    /**
     * @return the a
     */

    public T getA() {
        return a;
    }
    /**
     * @param a
     *            the a to set
     */

    public void setA(T a) {
        this.a = a;
    }
    public static void main(String[] args) {
        Holder3<Automobile> h3 = new Holder3<Automobile>();
        h3.setA(new Automobile());
    }
}

3,元组:
    元组(tuple),将一组对象直接打包存储于某单衣对象中。
    package com.jing.test2;
/**
 * 
 * @ClassName: TwoTuple
 * @Description: 当前元组对象持有两个对象
 * @author JerryJing
 * @date 2014年5月18日 下午2:59:35
 * @version V1.0
 * @param <A>
 * @param <B>
 */

public class TwoTuple<A, B> {
    public final A first;//申明为final,实现安全性
    public final B second;
    /**
     * 
     * <p>
     * Title:TwoTuple.java
     * </p>
     * <p>
     * Description: 构造函数
     * </p>
     * 
     * @param first
     * @param second
     */

    public TwoTuple(A first, B second) {
        super();
        this.first = first;
        this.second = second;
    }
    /**
     * toString
     */

    @Override
    public String toString() {
        return "TwoTuple [first=" + first + ", second=" + second + "]";
    }
}


















posted @ 2014-05-18 15:32  梅尔加德斯  阅读(179)  评论(0编辑  收藏  举报