9.14 泛型的基本定义

发布时间 2023-06-11 10:22:13作者: 盘思动

demo1

class Point<T> {// T属于类型标记,可以设置多个标记
    private T x;
    private T y;
    public void setX(T x){
        this.x = x;
    }
    public void setY(T y){
        this.y = y;
    }

    public T getX(){
        return this.x;
    }
    public T getY(){
        return this.y;
    }
}

public class HelloWorld {
    public static void main(String args[]){
        // 实例化Point类,设置泛型标记"T"的目标数据类型,属性,方法参数,返回值的类型动态配置
        Point<Integer> point = new Point<Integer>();
        // 第一步:根据需求进行内容的设置,所有数据通过Object接收
        point.setX(10);
        point.setY(20);// 自动装箱
        //point.setY("北纬20度");// 自动装箱--编译报错了

        // 第二步:从里面获取数据--不用向下转型
        int x = point.getX();
        int y = point.getY();// 获取y坐标的原始内容
        System.out.println("x坐标:" + x + ",y坐标:" + y);
    }
}
  • 泛型的本质在于:类中的属性或方法的参数与返回值的类型,可以有对象实例化的时候决定.

  • 那么此时就需要在类定义的时候,明确的定义占位符(泛型标记)

  • 泛型之中只允许设置引用类型,如果现在要操作基本类型必须使用包装类;

  • 从jdk1.7开始,泛型对象实例化可以简化为:Point point = new Point<>();(后面Integer可以省略)

  • 使用泛型可以解决大部分的类对象的强制转换处理,这样的程序才是一个合理的设计;