Java 泛型

泛型


1. 概念语法

1. Java泛型是JDK1.5中引入的一个新特性,其本质是参数化类型,把类型作为参数传递。
2. 常见形式有泛型类、泛型接口、泛型方法。
3. 语法:<T,...> T称为占位符,表示一种引用类型。

优点:

1. 提高代码的重用性
2. 防止类型转换异常,提高代码安全性。

2. 泛型类

  • 泛型之泛型类
  • 语法:类名 < T >
  • T 是类型占位符,表示一种引用类型,可以写多个,可以使用逗号隔开
  • 泛型可以声明变量 做方法的形参 可以做方法的返回值 但是不可以实例化!!

使用1:

public class Demo01<T> {
    // 使用泛型 T
    // 1. 创建变量
    T t;
    // 2. 创建方法(作为方法的参数)
    public void show(T t){
        System.out.println(t);
    }
    // 3. 使用泛型做方法返回值
    public T getT(){
        return t;
    }
}

泛型接口:

package com.fanXinDemo;
/**
 * 泛型接口
 * 语法:接口名<T>
 * 注意:不能泛型创建静态常量
* */
public interface MyInterface<T> {
    String name = "张三";
    T server(T t);
}

泛型接口实现类1:直接声明泛型类型

package com.fanXinDemo;

public class MyInterfaceImpl implements MyInterface<String>{


    @Override
    public String server(String s) {
        System.out.println(s);
        return s;
    }
}

泛型接口实现类2:类也使用泛型

package com.fanXinDemo;

public class MyInterfaceImpl2<T> implements MyInterface<T> {
    @Override
    public T server(T t) {
        System.out.println(t);
        return t;
    }
}

测试类:

package com.fanXinDemo;

public class TestDemo01 {

    public static void main(String[] args) {
        // 使用泛型类创建对象 实例化中的<> 在 JDK1.7之后可写可不写
        Demo01<String> myGeneric =new Demo01<String>();

        // 注意:1. 泛型只能使用引用类型
        //      2. 不同泛型类型对象之间不能相互赋值
        //      3.
        myGeneric.t = "Heelo";
        myGeneric.show("大家好");
        String s1 = myGeneric.getT();
        System.out.println(s1);

        Demo01<Integer> myGeneric2 = new Demo01<>();
        myGeneric2.t = 100;
        myGeneric2.show(200);
        Integer integer = myGeneric2.getT();

        System.out.println(integer);

        MyInterfaceImpl mif1 = new MyInterfaceImpl();
        mif1.server("11231231");

        MyInterfaceImpl2<Integer> mif2 = new MyInterfaceImpl2<>();
        mif2.server(11111);
    }
}

3. 泛型方法

package com.fanXinDemo;
/**
 * 泛型方法
 * 语法:<T> 返回值类型
 * */
public class MyGenericMethods {
    // 泛型方法
    public static <T> T show(T t){
        System.out.println("泛型方法"+t);
        return  t;
    }
}

4. 泛型集合

4.1 概念

参数化类型、类型安全的集合、强制集合元素的类型必须一致。

4.2 特点

编译时即可检查,而非运行时抛出异常。
访问时,不必类型转换(拆箱)。
不同泛型之间引用不能相互赋值,泛型不存在多态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值