泛型(2021-10-28)

  泛型的作用是,允许类中属性、类中方法的参数和返回值在创建对象时动态决定,在类中用大写字母作为占位符(可以声明多个)。
  泛型出现之后,一个类就可以处理多种数据类型。之前用Object也可以实现,但向下转型可能运行时发生ClassCastException,而泛型出错在编译时就能发现。
  泛型只能处理引用数据类型,如包装类。
  泛型通配符"?",允许接收任意泛型并获取其中数据(不允许修改)。还有额外功能 ,"? extends 类名"设置泛型的上限 , "? super 类名"设置泛型的下限。
  下面是1个简单例子:

package package1;

public class Point<T> { //坐标类
    private T x;
    private T y;

    public Point(){}
    public Point(T x,T y){
        this.x=x;
        this.y=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;
    }
}

package package1;

public class Main {
    public static void main(String[] args) {
        Point<Integer> pointA = new Point<>(); //指定数据类型只对当前对象生效
        pointA.setX(5);
        pointA.setY(10);
        System.out.println("[整型坐标]横坐标为: " + pointA.getX() + " 、纵坐标为: " + pointA.getY());
        Point<String> pointB = new Point<>();
        pointB.setX("东经60度");
        pointB.setY("北纬30度");
        System.out.println("[字符串坐标]横坐标为: " + pointB.getX() + " 、纵坐标为: " + pointB.getY());
    }
}

  运行结果:
图片.png
posted @   fighterk  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示