您的位置:首页 > 编程语言 > Java开发

肥桃的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.泛型可以不需要类型的强制转换。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: