Java 泛型基础与应用详解
泛型简介
Java泛型是在JDK 1.5中引入的新特性,主要目的是为了提高代码的复用性和安全性。泛型允许程序员在定义类、接口和方法时使用类型参数,这些类型参数在编译时会被具体类型替换。
泛型的主要优点包括:
- 提高代码的复用性,避免重复编写类似的代码。
- 减少类型转换错误,增强程序的健壮性。
泛型类
泛型类允许在类声明时指定一个或多个类型参数。这些类型参数可以在类的方法和属性中使用。
语法示例:
public class MyGeneric { private T value; public MyGeneric(T value) { this.value = value; } public T getValue() { return value; } public void setValue(T value) { this.value = value; }}
注意事项:
- 泛型只能使用引用类型,不能使用基本类型。
- 不同泛型类型的对象之间不能相互赋值。
泛型接口
泛型接口允许在接口声明时指定一个或多个类型参数。这些类型参数可以在接口的方法中使用。
语法示例:
public interface MyInterface { T getService(T t);}
实现泛型接口的方式有两种:
- 直接指定具体的类型参数实现接口。
- 定义一个泛型类来实现泛型接口。
示例代码:
public class MyInterfaceImpl implements MyInterface { @Override public String getService(String s) { return s; }}
public class MyInterfaceImpl2 implements MyInterface { @Override public T getService(T t) { return t; }}
泛型方法
泛型方法允许在方法声明时指定一个或多个类型参数。这些类型参数可以在方法的参数列表和返回类型中使用。
语法示例:
public class MyGenericMethod { public T show(T t) { System.out.println("泛型方法: " + t); return t; }}
示例代码:
public class TestGeneric { public static void main(String[] args) { MyGenericMethod myGenericMethod = new MyGenericMethod(); String s = myGenericMethod.show("中国加油!"); Integer integer = myGenericMethod.show(200); Double d = myGenericMethod.show(3.14); }}