定义:
是一种把明确类型的工作推迟到创建对象或者调用方法的时候才去明确的特殊的类型。

泛型高级
?:任意类型,如果没有明确,那么就是Object以及任意的Java类了
? extends E:向下限定,E及其子类
? super E:向上限定,E极其父类

1.自定义泛型类,泛型方法

package cn;

/**
 * 泛型类:把泛型定义在类上
 * 
 * @author Administrator
 * 
 */
public class ObjectTest<T> {
    private T object;

    public T getObject() {
        return object;
    }

    public void setObject(T object) {
        this.object = object;
    }

    /**
     * 自定义泛型方法
     * @return 
     */
    public <E> E show(E e) {
        return e;
    }
}

2.自定义接口泛型

package cn;

/**
 * 
 *自定义泛型接口
 */
public interface IObjectTest<T> {
    public abstract void method(T t);
    public abstract <E> E method2(E e);
}

3自定义泛型接口实现

package cn;
/**
 *  自定义泛型接口实现
 */
public  class ObjectTestImpl<T> implements IObjectTest<T> {

    @Override
    public void method(T t) {
        System.out.println(t);
    }

    @Override
    public <E> E method2(E e) {
        return e;
    }



}

泛型测试1

package cn;


public class Test {

    /**
 *泛型高级(通配符)
 * ?:任意类型,如果没有明确,那么就是Object以及任意的Java类了
 * ? extends E:向下限定,E及其子类
 * ? super E:向上限定,E极其父类
     */
    public static void main(String[] args) {
        //自定义泛型类测试
        System.out.println("------自定义泛型类测试---------");
        ObjectTest<String> objectString=new ObjectTest<String>();

        objectString.setObject("自定义类型String");
        System.out.println(objectString.getObject());


        ObjectTest<Integer> objectInteger=new ObjectTest<Integer>();
        objectInteger.setObject(12);
        System.out.println(objectInteger.getObject());
        //自定义泛型方法测试

        System.out.println("-----自定义泛型方法测试-----");
        System.out.println(objectInteger.show("String"));
        System.out.println(objectInteger.show(12));

        System.out.println("-----泛型接口测试-----");
        IObjectTest<String> ObjectTestImpl=new ObjectTestImpl<String>();
        System.out.println(ObjectTestImpl.method2("接口"));
        System.out.println(ObjectTestImpl.method2(12));
        ObjectTestImpl.method("只能String");




    }




}

泛型测试2

这里写图片描述

posted on 2017-04-03 18:04  2637282556  阅读(113)  评论(0编辑  收藏  举报