Java泛型基础与注解

泛型可以解决数据类型的安全性问题,其主要原理是在类声明时通过一个表示类中某个属性的数据类型或者是某个方法的返回值及参数类型。这样在类声明或者实例化时只要指定好需要的类型即可。语法:public class 类名{泛型标志可以是任意字符。习惯使用Tthis.x = x;this.y = y;return x;this.x = x;return y;this.y = y;
摘要由CSDN通过智能技术生成

1.什么是泛型

List<E>:这里的<E>就是泛型标志,Map<K,V>这里<K,V>也是泛型标记。

泛型:就是类再定义时无法确认类中成员的类型(属性,方法),而是类再创建时指定具体的数据类型。

 2.为什么使用泛型

  例子: 定义一个Point 点类,要求如下

  1. 它的坐标值可以是整数。

  2. 它的坐标值也可以都是小数。

  3. 它的坐标值也可以都是字符串类型。

package demo01;
public class Point {
    private Object x;
    private Object y;//因为Object是所有类的父类,而且多态,子类类型可以自动向父类类型转化。

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

    @Override
    public String toString() {
        return "Point{" +
                "x=" + x +
                ", 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;
    }
}



package demo01;
import java.util.ArrayList;
import java.util.List;
public class Test {
    public static void main(String[] args) {
        //整型坐标
        Point p1=new Point(25,36);
        //小数类型
        Point p2=new Point(25.5,36.6);
        //字符串类型
        Point p3=new Point("北纬25度","东经36度");
        //字符串和整型
        Point p4=new Point("北纬36度",15);
        String x = (String) p4.getX();
        //java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
        //如果使用Object定义类中属性类型,那么可能再后期会出现数据类型安全问题。
        String y = (String) p4.getY();
    }
}
以上代码使用Object接受任意参数,可能会发生数据类型安全问题,由于我们无法在类定义时去人类中成员的数据类型,所以我们可以使用泛型来解决数据类型安全问题。

 3. 如何定义类的泛型?

泛型可以解决数据类型的安全性问题,其主要原理是在类声明时通过一个<标识>表示类中某个属性的数据类型或者是某个方法的返回值及参数类型。这样在类声明或者实例化时只要指定好需要的类型即可。

语法:

public class 类名<T,E,B>{
 private T a;
 public T getA(){}
 public void setA(T t){}
}

泛型标志可以是任意字符。习惯使用T

package com.aaa.demo01;

public class Point<T> {
    private T x;
    private T y;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值