肥桃的Java学习记录14:泛型和通配符
2020-09-02 15:54
1276 查看
泛型:参数化类型,也可以理解为泛指某个类型。可以让方法中的变量暂时不确定类型。
泛型可以在三个位置进行使用:三种方式
在类创建时就声明一个泛型,可以用字母表示(类型形参)
在使用时传入具体类型(类型实参)
泛型接口,同上
泛型方法
1.泛型在类中使用
例如:Person类在创建的时候无法确定类型,但是在使用的时候可以确定,就可以将Person创建为泛型,方法的返回值也会是泛型。
Public class Person<A>{ private String name; private int age; private A data; }
这里的Person类就是泛型在类中的使用,需要在声明类的时候加上”<>”,在括号内填入大写字母代表泛型。生成的getter/setter方法也是使用泛型。
在main方法中使用泛型时,可以使用如下格式创建对象:
Person<String> p = new Person<>();
在方括号中需要填入替代泛型的具体参数类型(类型实参),
在之后p.setData() 对对象p进行方法的调用时,方法需要的参数类型也会随之改变成实参的类型。
2.泛型在接口中使用
泛型接口可以在实现接口的时候指定泛型类型,也可以不指定。
3.泛型在方法中使用
泛型的参数加在权限修饰符后
例如:
public static <A> void print(A a){ System.out.println(a); }
在main方法中调用print方法的时候会根据输入的参数类型自动装箱。
泛型限定和通配符
泛型限制类型
可以用来限制和指定泛型的区域,必须是某类的子类或者实现类。
例如Plate类必须是Fruit的接口实现类。
通配符
这里的?是通配符
和object不同的是object可以传入任意参数,而?是需要传递的参数来代替这个问号。
?可以当做object来看待,但使用时传入了例如String类型就只能传String了。
泛型的好处
1.提升代码的复用率
2.泛型可以不需要类型的强制转换。
相关文章推荐
- Android(java)学习笔记92:泛型高级之通配符
- Java基础学习之泛型(泛型方法、泛型类、通配符的使用)
- Java学习记录(14)——Annotation
- 【Java学习笔记】14.集合框架和泛型
- JAVA学习记录(六)泛型
- 肥桃的Java学习记录15:List接口的子类,ArrayList 和 LinkedList
- java中泛型学习1之类型通配符(?)
- Java学习记录–泛型擦除分析
- JAVA学习第四十二课 — 泛型(二)—泛型接口&&通配符应用
- Java学习笔记-泛型通配符
- JAVA 学习随笔记录 (八)泛型与集合类
- Java学习之道:简述泛型通配符<? extends T>和<? super T>
- java学习记录之——泛型
- 安卓学习记录-java-day14
- 程序媛Java学习记录之泛型擦除分析
- java泛型编程学习 笔记三:泛型继承规则以及通配符“?”使用
- 【Java学习笔记】38:三种泛型通配符
- Java学习之道:简述泛型通配符<? extends T>和<? super T>
- Java学习记录--泛型擦除分析
- Java 泛型学习三 通配符