Java泛型使用(一)

来源:互联网 发布:将svg转化成canvas js 编辑:程序博客网 时间:2024/06/03 15:47

package com.main;import java.util.ArrayList;import java.util.List;public class Main {    public static <E> void printArray(E[] inputArray) {        for (E element : inputArray) {            System.out.printf("%s ", element);        }        System.out.println();    }    public static void main(String[] args) {        Integer[] intArray = {1, 2, 3, 4, 5};        Double[] doubleArray = {1.1, 1.2, 1.3};        Character[] charArray = {'A', 'B', 'C'};        printArray(intArray);        printArray(doubleArray);        printArray(charArray);//        1 2 3 4 5//        1.1 1.2 1.3//        A B C        Box<Integer> integerBox = new Box<Integer>();        Box<String> stringBox = new Box<String>();        integerBox.add(1);        stringBox.add("a");        System.out.println(integerBox.getT());        System.out.println(stringBox.getT());//        1//        a        Toy<Integer> integerToy = new Toy<Integer>();//        Toy<String> stringToy = new Toy<String>();//报错,不是Number的子类        integerToy.addT(1);//        stringToy.addT("a");        System.out.println(integerToy.getT());//        System.out.println(stringToy.getT());//        1        List<Integer> integerList = new ArrayList<Integer>();        List<String> stringList = new ArrayList<String>();        integerList.add(1);        integerList.add(2);        integerList.add(3);        stringList.add("a");        stringList.add("b");        stringList.add("c");        getData(integerList);        System.out.println();        getData(stringList);//        1 2 3//        a b c    }    public static void getData(List<?> list) {//通配符        for (int i = 0; i < list.size(); i++) {            System.out.print(" " + list.get(i));        }    }}//同时这三篇文章也很好//http://blog.csdn.net/qq_27093465/article/details/73229016//http://www.jianshu.com/p/95f349258afb//http://www.runoob.com/java/java-generics.html
package com.main;public class Box<T> {    private T t;    public void add(T t) {        this.t = t;    }    public T getT() {        return t;    }}
package com.main;//java.lang//        Class Number//        java.lang.Object//        java.lang.Number//        All Implemented Interfaces://        Serializable//        Direct Known Subclasses://        AtomicInteger, AtomicLong, BigDecimal, BigInteger, Byte, Double, Float, Integer, Long, Shortpublic class Toy<T extends Number> {//必须要是Number的子类    private T t;    public void addT(T t) {        this.t = t;    }    public T getT() {        return t;    }}