泛型接口的定义:使用泛型定义的接口成为泛型接口
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; } } |