首页 > 其他 > 详细

泛型和泛型的通配符应用

时间:2020-12-03 21:56:58      阅读:33      评论:0      收藏:0      [点我收藏+]

 

泛型以及通配符

当使用泛型类或者泛型接口,传递的数据中,泛型的类型不确定,可以通过通配符表示<?>表示.一旦程序当中使用泛型通配符后,只能使用Object类中共性的方法. 集合中元素自身类型的方法无法使用.(这是一种多态的写法,)

泛型作为形参写在方法参数列表内

举个栗子:

泛型应用在类中
public class Pue<E>{
   private E age;
public void set(E name){
  this.name=name;
}
}
当我们使用泛型修饰一个类的时候,我们大多使用泛型来修饰成员变量和get  set方法以及构造方法
 泛型应用在方法中
public static<E> void methods(E age){
System.out.println(E.getClass());
}
当我们使用泛型修饰一个类的时候,在类的修饰符后面加上泛型的修饰符号<随意的符号就当定义变量>然后就可以在方法内使用泛型来修饰参数或者局部变量,

备注;当我们调用了使用了带有泛型的方法或者,类,这个泛型一定会被固定.必须是确定的类型,输入的是什么参数,泛型会自动成为相同的类型.

通配符,当我们需要对泛型进行限制的时候,java为我们提供了一个符号,通配符来对泛型进行限制,简称

受限泛型

受限泛型分为两种限制方式: 上限extends     下限super

定义格式

//定义方法 此时可以接受任意的数据类型
public static void getElement(Collection<?> coll){//...}
//定义方法,此时我只让方法接收数字类型 Number类型和Number的子类类型
public static void getElement(Collection<? extends Number> coll){//....}
//定义方法,此时我只让接收Number类型及其以上的类型
public static void getElement(Collection<? super Number> coll){//...}

 

通配符不能直接用来定义集合的数据类型,程序会混乱,并且数据类型被定义了通配符的集合无法存储任何类型的数据

栗子:

ArrayList<?> list= new ArrayList<>();

上面这个集合现在无法储存任何的数据.

 

泛型和泛型的通配符应用

原文:https://www.cnblogs.com/rosiness/p/14082548.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!