Java中已经存在数组,引入泛型有什么必要?
Java中的数组用于存储同类数据类型,泛型允许用户动态选择方法(类的构造函数)动态接受的类型(类)。
通过定义一个泛型类,可以使其成为类型安全的,即它可以作用于任何数据类型。为了理解泛型,让我们考虑一个例子-
示例
class Student<T>{ T age; Student(T age){ this.age = age; } public void display() { System.out.println("Value of age: "+this.age); } } public class GenericsExample { public static void main(String args[]) { Student<Float> std1 = new Student<Float>(25.5f); std1.display(); Student<String> std2 = new Student<String>("25"); std2.display(); Student<Integer> std3 = new Student<Integer>(25); std3.display(); } }
输出结果
Value of age: 25.5 Value of age: 25 Value of age: 25
为什么我们需要泛型
在代码中使用泛型将具有以下优点-
在编译时进行类型检查-通常,当您使用类型(常规对象)时,将不正确的对象作为参数传递时,它将在运行时提示错误。
而当您使用泛型时,错误将发生在编译时,这很容易解决。
代码重用-您可以使用泛型类型编写一次方法,类或接口,并且可以使用各种参数多次使用此代码。
对于某些类型,对于形式类型,您需要强制转换对象并使用。使用泛型(在大多数情况下),您可以直接传递所需类型的对象,而不依赖于强制转换。