栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java笔记之泛型

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java笔记之泛型

目录

什么是泛型?

为什么使用泛型?

泛型对数据类型有影响吗?

泛型通配符

思考问题


什么是泛型?

Java中泛型就是将数据类型指定为参数,可作用于类、接口及方法的创建中。

为什么使用泛型?

1.保证类型安全,在编译阶段实现类型检查

import java.util.ArrayList;
import java.util.List;

public class Demo01 {

    public static void main(String[] args) {
        //未指定泛型类型的的list
        List  list = new ArrayList<>();
        //指定泛型类型为String的list
        List  strList = new ArrayList<>();

        //未指定泛型类型的list可以添加任意类型的数据
        list.add("hello world");
        list.add(100);

        //指定泛型类型为String的list只可以添加String类型的数据,当添加int类型时编译报错
        strList.add("hello world");
        
        strList.add(100);//此处出现编译错误
    }
}

 2.避免类型转换硬编码

import java.util.ArrayList;
import java.util.List;

public class Demo02 {
    
    public static void main(String[] args) {
        
        //未指定泛型类型的list
        List list = new ArrayList();
        //指定泛型类型为String的list
        List strList = new ArrayList<>();
        
        list.add("not genuse demo");
        list.add("test data");

        strList.add("genuse demo");
        strList.add("test data");

        
        String firstItem1 = (String)list.get(0);
        String firstItem2 = strList.get(0);
    }
}

 3.提高代码的重用性

        在日常开发中为了使有些类、接口及方法的适用范围更广,通常都会使用泛型来达到此目的。比如计算机的加方法,如果一开始只定义为整数类型相加,那么后续要衍生出其它数据类型(double、float、long等)的加法则需要不断添加方法,这是不可取的。此时泛型即可帮我们达到代码可重用性的目的。

public class CalDemo implements Cal{

    public Integer add(Integer num1, Integer num2){
        return num1 + num2;
    }
}
public interface Cal {

    
    T add(T num1, T num2);
}

泛型对数据类型有影响吗?

不会。

原因是泛型只对编译器起作用,在编译期间java编译器会进行类型擦除。可通过查看编译文件验证此论证。命令如下:

javap -verbose

泛型通配符

用于定义泛型界限的符号,主要有以下三种类型:

  • 无通配符:
  • 上界通配符:
  • 下界通配符:
import java.util.List;

public class Demo03 {

    
    public void unbound(List list){

    }
    
    public void upLimit(List list){

    }
    
    public void downLimit(List list){

    }
}

思考问题

什么是泛型桥接?

什么是堆污染?

以上内容仅代表个人理解,如有不足欢迎指正,请多多包涵,谢谢!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/873717.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号