本文主要是介绍(011) java后台开发之泛型类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
转自:https://course.tianmaying.com/java-basic+generic-basic#1
泛型类 (很重要的一个自定义的类型)
在使用泛型时,我们可以把类型作为参数传入到泛型类中。类似于把参数传入到方法中一样。我们来实现一个通用的泛型Point类:
public class Point<T> {
private T x;
private T y;
public T getX() {
return x;
}
public void setX(T x) {
this.x = x;
}
public T getY() {
return y;
}
public void setY(T y) {
this.y = y;
}
}
此时Point
成为了一个泛型类,T
是则是类型参数,T
具体是什么类型那要看程序运行的时候我们传入什么类型给他。
使用泛型类时,注意实际传入的类型参数不能是原生类型,必须是引用类型,因此如果希望传入int
类型的话,那么需要传入int
对应的包装类Interger
。对应地,double
类型则要传入包装类Double
。
public class Test{
public static void main(String[] args){
// 坐标为int类型,把int类型的包装类Integer作为参数传入泛型类中
Point<Integer> point1 = new Point<Integer>();
point1.setX(1);
point1.setY(1);
// 坐标为double类型,把double类型的包装类Double作为参数传入泛型类中
Point<Double> point2 = new Point<Double>();
point2.setX(3.456);
point2.setY(4.789);
}
}
Point<Integer>
基本等价于第一节中的Point
类,而Point<Double
>则基本等价于DoublePoint
类。
我们再举一个例子,我们定义一个容器类Container
,这个容器中可以存放各种类型的对象,可以使用泛型类实现这一特性。
public class Container<T> {
private T variable;
public Container () {
variable = null;
}
public Container (T variable) {
this.variable = variable;
}
public T get() {
return variable;
}
public void set(T variable) {
this.variable = variable;
}
public static void main(String[] args) {
Container<String> stringContainer = new Container<String>();
stringContainer.set("this is a string");
}
}
我们实例化Container对象时,只需设置它使用的类型,如:
Container<String> stringContainer = new Container<String>();
stringContainer.set("this is a string");
在下一节中,我们将学习到Java为我们提供的非常实用的容器类(也称之为集合类)。
泛型也可以直接应用在一个方法中,不要求这个方法所属的类为泛型类。例如我们要获取一个对象的类名称:
public class Printer {
public static <T> void printArray(T[] objects) {
if (objects != null) {
for(T element : objects){
System.out.printf("%s",element);
}
}
}
public static void main(String[] args) {
Integer[] intArray = { 1, 2, 3, 4, 5 };
Character[] charArray = { 'T', 'I', 'A', 'N', 'M', 'A', 'Y', 'I', 'N', 'G' };
printArray(intArray);
printArray(charArray);
}
}
与泛型类不同的是泛型方法需要在方法返回值前用尖括号声明泛型类型名,这样才能在方法中使用这个标记作为返回值类型或参数类型。
这篇关于(011) java后台开发之泛型类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!