Java中泛型是一種參數(shù)化類型的概念,可以讓類或方法在定義時(shí)不確定某些類型,而是在使用時(shí)再指定具體的類型。Java中的泛型分為泛型類和泛型方法兩種。
泛型類: 泛型類是指在定義類時(shí)使用了泛型參數(shù),這個(gè)泛型參數(shù)可以用于類中的任何位置,例如定義變量、方法、構(gòu)造函數(shù)等。泛型類的定義方式如下:
public class MyClass<T> {
private T value;
public MyClass(T value) {
this.value = value;
}
public T getValue() {
return value;
}
public void setValue(T value) {
this.value = value;
}
}
在上述示例中,MyClass類的定義中使用了一個(gè)泛型參數(shù)T,可以用于類中的任何位置,包括成員變量value和方法getValue()、setValue()。這樣,在使用MyClass類時(shí),就可以指定具體的類型,例如:
MyClass<String> str = new MyClass<>("hello");
String s = str.getValue(); // "hello"
泛型方法: 泛型方法是指在定義方法時(shí)使用了泛型參數(shù),這個(gè)泛型參數(shù)只能用于該方法中。泛型方法的定義方式如下:
public class MyClass {
public <T> T myMethod(T value) {
return value;
}
}
在上述示例中,myMethod()方法的定義中使用了一個(gè)泛型參數(shù)T,只能用于該方法中。這樣,在調(diào)用myMethod()方法時(shí),就可以指定具體的類型,例如:
MyClass obj = new MyClass();
String s = obj.myMethod("hello"); // "hello"
Integer i = obj.myMethod(123); // 123
總之,Java中的泛型可以讓類或方法具有更大的通用性和靈活性,可以減少代碼的冗余和提高代碼的復(fù)用性。