在本教程中,动力节点小编将通过示例了解 Java 泛型、如何创建泛型类和方法及其优势。
Java 泛型允许我们创建可用于不同类型的数据(对象)的单个类、接口和方法。
这有助于我们重用我们的代码。
我们可以创建一个可用于任何类型数据的类。这样的类称为泛型类。
下面是我们如何在 Java 中创建泛型类:
示例:创建泛型类
class Main {
public static void main(String[] args) {
// initialize generic class
// with Integer data
GenericsClass<Integer> intObj = new GenericsClass<>(5);
System.out.println("Generic Class returns: " + intObj.getData());
// initialize generic class
// with String data
GenericsClass<String> stringObj = new GenericsClass<>("Java Programming");
System.out.println("Generic Class returns: " + stringObj.getData());
}
}
// create a generics class
class GenericsClass<T> {
// variable of T type
private T data;
public GenericsClass(T data) {
this.data = data;
}
// method that return T type variable
public T getData() {
return this.data;
}
}
输出
通用类返回:5
泛型类返回:Java 编程
在上面的例子中,我们创建了一个泛型类,名为泛型类. 此类可用于处理任何类型的数据。
class GenericsClass<T> {...}
这里,尖括号内使用的<>表示类型参数。在Main类中,我们创建了两个对象泛型类对象- 这里,类型参数吨替换为Integer。现在泛型类适用于整数数据。
字符串对象- 这里,类型参数吨替换为String。现在泛型类适用于字符串数据。
与泛型类类似,我们也可以创建一个可用于任何类型数据的方法。这样的类称为泛型方法。
下面是我们如何在 Java 中创建泛型类:
示例:创建泛型方法
class Main {
public static void main(String[] args) {
// initialize the class with Integer data
DemoClass demo = new DemoClass();
// generics method working with String
demo.<String>genericsMethod("Java Programming");
// generics method working with integer
demo.<Integer>genericsMethod(25);
}
}
class DemoClass {
// creae a generics method
public <T> void genericsMethod(T data) {
System.out.println("Generics Method:");
System.out.println("Data Passed: " + data);
}
}
输出
泛型方法:
通过的数据:Java 编程
泛型方法:
数据通过:25
在上面的示例中,我们创建了一个名为的泛型方法
public <T> void genericMethod(T data) {...}
在这里,类型参数<T>插入在修饰符之后public和返回类型之前void。
我们可以通过将实际类型放在方法名称前的方括号内来调用泛型<String>方法<Integer>。
demo.<String>genericMethod("Java Programming");
demo.<Integer>genericMethod(25);
1. 代码可重用性
借助 Java 中的泛型,我们可以编写适用于不同类型数据的代码。例如,
public <T> void genericsMethod(T data) {...}
在这里,我们创建了一个泛型方法。同样的方法可用于对整数数据、字符串数据等执行操作。
2. 编译时类型检查
泛型的类型参数提供有关泛型代码中使用Java的数据类型信息。例如,
// using Generics
GenericsClass<Integer> list = new GenericsClass<>();
在这里,我们知道泛型类仅使用Integer数据。
现在,如果我们尝试将 Integer 以外的数据传递给此类,程序将在编译时产生错误。
3. 与集合一起使用
集合框架使用 Java 中的泛型概念。例如,
// creating a string type ArrayList
ArrayList<String> list1 = new ArrayList<>();
// creating a integer type ArrayList
ArrayList<Integer> list2 = new ArrayList<>();
在上面的示例中,我们使用了相同的ArrayList 类来处理不同类型的数据。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习