首页 > 代码库 > 自定义泛型类
自定义泛型类
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]
自定义泛型类
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。