📅  最后修改于: 2020-11-04 06:45:15             🧑  作者: Mango
当定义类,接口和方法时,泛型使类型(类和接口)成为参数。与方法声明中使用的更熟悉的形式参数非常相似,类型参数为您提供了一种使用不同输入重复使用相同代码的方法。区别在于形式参数的输入是值,而类型参数的输入是类型。
可以对诸如List类之类的集合类进行泛化,以便在应用程序中仅接受该类型的集合。通用ArrayList的示例如下所示。以下语句的作用是仅接受字符串类型的列表项-
List list = new ArrayList();
在以下代码示例中,我们正在执行以下操作-
class Example {
static void main(String[] args) {
// Creating a generic List collection
List list = new ArrayList();
list.add("First String");
list.add("Second String");
list.add("Third String");
for(String str : list) {
println(str);
}
}
}
上述程序的输出将是-
First String
Second String
Third String
整个类也可以泛化。这使类在接受任何类型并相应地使用这些类型时更加灵活。让我们来看一个如何实现此目的的示例。
在以下程序中,我们执行以下步骤-
我们正在创建一个名为ListType的类。请注意
通用类具有简单的getter和setter方法,可与该类中定义的成员变量一起使用。
在主程序中,请注意,我们能够声明ListType类的对象,但可以声明不同类型的对象。第一个是Integer类型,第二个是String类型。
class Example {
static void main(String[] args) {
// Creating a generic List collection
ListType lststr = new ListType<>();
lststr.set("First String");
println(lststr.get());
ListType lstint = new ListType<>();
lstint.set(1);
println(lstint.get());
}
}
public class ListType {
private T localt;
public T get() {
return this.localt;
}
public void set(T plocal) {
this.localt = plocal;
}
}
上述程序的输出将是-
First String
1