泛型和注解--高级

目录

一.泛型

1.什么是泛型

2.为什么使用泛型

3.通配符

4.受限泛型

 5.泛型接口

 6.泛型方法

 二.注解

1. 预定义注解

2. 元注解

3.自定义注解


一.泛型

1.什么是泛型

 所谓的泛型就是在类定义时,不为类中属性和方法指定数据类型,而是在类对象创建时为其指定相应的数据类型。

2.为什么使用泛型

定义一个Point点类,该类中属性有x坐标和y坐标。

要求: x和y的值可以都是整数类型。

​ x和y的值可以都是小数类型。

​ x和y的值可以都是字符串类型。

如何定义该类呢?

package com.tym.demo7;

public class Test {
    public static void main(String[] args) {
        Point p1=new Point(10,10);
        p1.show();

        Point p2=new Point(20.0,20.6);
        p2.show();

        Point p3=new Point("东经18度","北纬20度");
        p3.show();
    }
}
class Point {
    //x坐标
    private Object x;
    //y坐标
    private Object y;
    
    public void show(){
        System.out.println("x:"+x+"y:"+y);
    }

    public Point() {
    }

    public Point(Object x, Object y) {
        this.x = x;
        this.y = y;
    }

    public Object getX() {
        return x;
    }

    public void setX(Object x) {
        this.x = x;
    }

    public Object getY() {
        return y;
    }

    public void setY(Object y) {
        this.y = y;
    }
}

 此时发现可以满足我们的要求,但也有一个问题,如果我们为坐标一个赋值整数,一个赋值为字符串,这时不会报错,违背了我们设计的要求 ,会出现数据类型安全问题

Point p4=new Point(20,"北纬10度");
        p4.show();

此时我们就可以用泛型来解决

public class Test {
    public static void main(String[] args) {
        Point<Integer> p1=new Point<Integer>(10,20);
        p1.show();

        Point<Double> p2=new Point<Double>(20.0,30.0);
        p2.show();

        Point<String> p3=new Point<String>("东经100度","北纬20度");
        p3.show();
    }
}
 class Point<T> {
   
    private T x;
 
    private T y;

    publi
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值