码迷,mamicode.com
首页 > 其他好文 > 详细

自定义泛型类

时间:2014-12-08 17:15:38      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:style   blog   ar   color   os   使用   sp   for   java   

1 当实例化泛型类的对象时,指明泛型类的类型。指明之后,对应的类中所有使用泛型的位置,都变为实例化中指定的泛型的类型

2 如果我们自定义了泛型类,但是在实例化时没有使用,那么默认类型是Object类的。

package lianxi3;

import java.util.ArrayList;
import java.util.List;

import org.junit.Test;
//自定义泛型类
public class Order<T> {

    private int orderId;
    private String orderName;
    private T t;
    List<T> list = new ArrayList<T>();
    //声明泛型类的方法
    public <E>E getE(E e){
        return e;
    }
    //实现数组到集合的复制
    public <E>List fromArrtoList(E[]e,List<E> list1){
        for(E e1:e){
            list1.add(e1);
        }
        return list1;
    }
    public void add(){
        list.add(t);
    }
    public int getOrderId() {
        return orderId;
    }

    public void setOrderId(int orderId) {
        this.orderId = orderId;
    }

    public String getOrderName() {
        return orderName;
    }

    public void setOrderName(String orderName) {
        this.orderName = orderName;
    }

    public T getT() {
        return t;
    }

    public void setT(T t) {
        this.t = t;
    }

    @Override
    public String toString() {
        return "Order [orderId=" + orderId + ", orderName=" + orderName
                + ", t=" + t + "]";
    }

}
//1.class SubOrder<T> extends Order<T>{
class SubOrder extends Order<Boolean>{
    
}
@Test //自定义泛型类的使用
    public void test3(){
        Order<String> o1 = new Order<String>();
        o1.setOrderId(32);
        o1.setOrderName("fas");
        o1.setT("tt");
        System.out.println(o1);
        o1.add();
        //List<String> list1 = o1.list; //o1中的list存放的是String类型的数据
        System.out.println(o1.list); //或是System.out.println(list1);
        //声明泛型类的方法
        Integer i1 = o1.getE(789);
        System.out.println("i1="+i1);
        
        //1.SubOrder<Boolean> so = new SubOrder<Boolean>();
        SubOrder so = new SubOrder();
        so.setOrderId(34);
        so.setT(true);
        so.add();
        so.setT(true);
        so.add();
        so.setT(false);
        so.add();
        System.out.println(so.list);
    //实现数组到集合的复制
        Integer[] in = new Integer[]{3,5,6};
        List<Integer> list1 = new ArrayList<Integer>();
        o1.fromArrtoList(in, list1);
        System.out.println(list1);
        
    }

结果:

Order [orderId=32, orderName=fas, t=tt]
[tt]
i1=789
[true, true, false]
[3, 5, 6]

自定义泛型类

标签:style   blog   ar   color   os   使用   sp   for   java   

原文地址:http://www.cnblogs.com/yjtm53/p/4151438.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!