目录
1.什么是泛型
泛型是 Java 编程语言的功能,允许程序员编写参数化代码。
泛型可确保集合不会存储错误的对象类型。
2.代码解释
目前我所了解使用到的,大部分是应用在集合上的,所以我打算用集合来演示。
泛型的使用:
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.消除强制转换:有些时候对象与集合中的内容不匹配需要强制转换,但如果使用泛型,我们可以泛化代码以实现可重用性,并且使代码更加安全。
建议:如果使用集合,就加上泛型。