浅理解java中的泛型

目录

1.什么是泛型

泛型是 Java 编程语言的功能,允许程序员编写参数化代码。

泛型可确保集合不会存储错误的对象类型。

2.代码解释

目前我所了解使用到的,大部分是应用在集合上的,所以我打算用集合来演示。

泛型的使用:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ajn88ddr-1666195994578)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20221020000437615.png)]

2.1前期准备

在开始之前,创建一个用户类User,

public class User {
    private String name;
    private String sex;
    private Integer age;
    private String email;
    private Long phoneNumber;
	public User(){}
    public User(String name, String sex, Integer age, String email, Long phoneNumber) {
        this.name = name;
        this.sex = sex;
        this.age = age;
        this.email = email;
        this.phoneNumber = phoneNumber;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                ", age=" + age +
                ", email='" + email + '\'' +
                ", phoneNumber=" + phoneNumber +
                '}';
    }

   
}

2.2集合不带泛型

		List listName = new ArrayList();
        listName.add("123");
        listName.add(12345);
        listName.add(9999999999L);
        listName.add(1==1);
        listName.forEach(x ->{
            System.out.println(x);
        });

在这里插入图片描述

这样虽然是正确,但是里面的数据杂乱无章,什么类型的数据都可以往集合中添加(String,int,long,boolean,User……)

如果是这样的话,在我们开发当中会出现一些问题,如果不小心将其他我们不想要的数据加入,那将会很麻烦。

2.3集合使用泛型

		List<User> userList = new ArrayList();
        //模拟数据
        User user1 = new User("张三", "男", 21, "zhangsan@123.com", 18253847430L);
        User user2 = new User("李四", "男", 21, "lisi@999.com", 15555558888L);
        User user3 = new User("王五", "男", 21, "wangwu@126.com", 18888888888L);
        User user4 = new User("赵六", "男", 21, "zhaoliu@163.com", 1666666666L);
        User user5 = new User("李七", "男", 21, "liqi@qq.com", 11111111111L);
        //向集合中添加数据
        userList.add(user1);
        userList.add(user2);
        userList.add(user3);
        userList.add(user4);
        userList.add(user5);
        //查看集合数据
        userList.forEach(user -> System.out.println(user));

在这里插入图片描述

是没有问题的

但是如果添加的不是泛型规定的类型则会报错。
在这里插入图片描述
不仅是自定义的可以泛型,如果是String,Integer都是可以用的
在这里插入图片描述
在这里插入图片描述

3.总结

由于对更安全的代码的需求,泛型被添加到Java编程语言中。实际上,它增加了代码的稳定性,因为潜在的错误可以在编译时检测到。以下是使用泛型的好处:

1.编译时更强的类型检查:保证没有向集合中添加错误的类型。更强的类型检查使代码更具可读性;

2.消除强制转换:有些时候对象与集合中的内容不匹配需要强制转换,但如果使用泛型,我们可以泛化代码以实现可重用性,并且使代码更加安全。

建议:如果使用集合,就加上泛型。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值