泛型

1.泛型存在的意义

将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。

例如:GenericClass<T>{}

没有使用泛型前
例如 :
1.放在的集合中的类型都是Object类型的,在取出元素时人为的强制类型转化到具体的目标类型可能会出现ClassCastException

2.在实现一个加法运算的时候每种数据类型类型都要重载一个方法。

所以使用泛型的意义在于:

1.适用于多种数据类型执行相同的代码(代码复用)
2.泛型中的类型在使用时指定,不需要强制类型转换(类型安全,编译器会检查类型)

2.泛型的使用

①.泛型类的使用

public class GenericClass<T> {
    public T data;
    public T getData(){
        return data;
    }
    public void setData(T data){
        this.data=data;
    }
    public static void main(String[] args) {
        GenericClass <String> genericClass=new GenericClass<>();
        genericClass.setData("我是一个泛型类");
        String str=genericClass.getData();
        System.out.println(str);//我是一个泛型类
    }
}

②.泛型接口的使用

public interface GenericIntercace<T> {
     T getData();
}

实现泛型接口
1.泛型类实现泛型接口

package Csdn;

public class GenericClassTest<T> implements GenericInterface<T> {
    public T data;
    @Override
    public T getData() {
        return data;
    }
    public void setData(T data){
        this.data=data;
    }
    public static void main(String[] args) {
        GenericClassTest <String> genericClassTest=new GenericClassTest<>();
        genericClassTest.setData("我是一个泛型类");
        String str=genericClassTest.getData();
        System.out.println(str);
    }
}

2.具体类型实现方式

public class GenericClass2 implements GenericInterface<String> {
    @Override
    public String getData() {
        return "我是一个泛型类";
    }
    public static void main(java.lang.String[] args) {
        GenericClass2 genericClass2=new GenericClass2();
        System.out.println(genericClass2.getData());
    }
}

③.泛型的总结

  1. 泛型是为了解决某些容器、算法等代码的通用性而引入,并且能在编译期间做类型检查。
  2. 泛型利用的是 Object 是所有类的祖先类,并且父类的引用可以指向子类对象的特定而工作。
  3. 泛型是一种编译期间的机制,即 MyArrayList 和 MyArrayList 在运行期间是一个类型。
  4. 泛型时java中的合法语句,标记就是<>;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值