泛型接口的定义:使用泛型定义的接口成为泛型接口

interfaceMessage<T> {  // 泛型接口

    publicString echo(T msg) ;

}

在Java中,泛型接口的实现的两种方式

1,在子类上继续定义泛型,同时此泛型在接口上继续使用

interfaceMessage<T> {  // 泛型接口

    publicString echo(T msg) ;

}

classMessageImpl<T> implementsMessage<T> {

    publicString echo(T msg) {

        return"ECHO : "+ msg;

    }

}

publicclassTestDemo {

    publicstaticvoidmain(String[] args) throwsException {

        Message<String>msg = newMessageImpl<String>();

        System.out.println(msg.echo("张三"));

    }

}

2,在子类上设置具体类型

interfaceMessage<T> {  // 泛型接口

    publicString echo(T msg) ;

}

classMessageImpl implementsMessage<String> {

    publicString echo(String msg) {

        return"ECHO : "+ msg;

    }

}

publicclassTestDemo {

    publicstaticvoidmain(String[] args) throwsException {

        Message<String>msg = newMessageImpl();

        System.out.println(msg.echo("张三"));

    }

}

泛型方法:

publicclassTestDemo {

    publicstaticvoidmain(String[] args) throwsException {

        Integerresult[] = get(1, 2, 3);

        for(inttemp :result) { // 连自动拆箱都包含了

            System.out.println(temp);

        }

    }

    publicstatic<T> T[] get(T... args) { // T的类型由方法调用的时候来决定

        returnargs;

    }

}