泛型
来源:互联网 发布:安装python安装方法 编辑:程序博客网 时间:2024/06/14 17:54
Java的参数化类型被成为泛型。允许程序在创建集合是指定集合元素的类型。
Java7以前:List<String> strList = new ArrayList<String>();
Java7以后:List<String> strList = new ArrayList<>();
所谓泛型就是在定义类、接口、方法时使用类型形参,类型形参可以在整个接口、类体内当成类型使用。
注意:
1、当创建带泛型声明的自定义类,为该类定义的构造器时,构造器还是原来的类名,不要增加泛型声明。例如:为Apple<T>
类定义构造器,其构造器名依然为Apple,而不是Apple<T>
。
2、定义类、接口、方法时可以声明类型形参,使用类、接口、方法时应该为类型形参传入实际的类型。 public class A extends Apple<T>{}
//错误 应为:
public class A extends Apple<String>{}
调用方法必须为所有的数据形参传入参数值,使用类、接口时可以不为类型形参传入实际的类型参数,如:public class A extends Apple
并不存在泛型类
不管泛型的实际类型参数是什么,它们在运行时总有同样的类(class)。
在静态方法、静态初始化块或静态变量的声明和初始化中不允许使用类型形参。
instanceof运算符后不能使用泛型。
如果Foo是Bar的一个子类型,而G是具有泛型声明的类和接口,G<Foo>
并不是G<Bar>
的子类型。
数组与泛型不同,Foo是Bar的一个子类型,那么Foo[]依然是Bar[]的子类型。
类型通配符:?,例List
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- java入门第一季-程序移植
- 对js事件绑定的一些理解
- 程序员揭露弹性工作时间制背后的隐情
- java swing中setVisible(true);方法的真正作用
- CSS中的盒子弧度 border-radius
- 泛型
- angular2的angular-cli如何使用代理api
- javascript的征程 --Function函数
- 剑指小组2017----西邮Linux兴趣小组纳新面试题讲解(第17题)
- 编写java程序151条建议读书笔记(16)
- 为CListBox加上智能水平滚动条
- java学习路线
- JavaScript 01
- 网站性能优化