泛型(二)之通配符
来源:互联网 发布:人工智能危机作文 编辑:程序博客网 时间:2024/06/18 00:03
一、通配符:解决接收一个类的任意的泛型类型,但是不能修改,只能取出,就可以使用通配符?来描述
格式:类型名称
class Message<E> { private E mes; public void setMes(E mes) { this.mes = mes; } public E getMes() { return mes; }}public class Main { public static void main(String[] args) { Message<String> m = new Message<>(); m.setMes("hello world"); fun(m); } public static void fun(Message<?> mes) { //不能够设置(set),但是可以取出 System.out.println(mes.getMes()); }}
二、子通配符
在“?”通配符的基础上有两个子通配符
1)?extends 类:设置泛型上限,可以在声明上和方法的参数上使用
例子
- ?extends Number:意味着可以设置Number类或者Number的子类
class Message<E extends Number> { private E mes; public void setMes(E mes ) { this.mes = mes; } public E getMes() { return mes; }}public class Main { public static void main(String[] args) { Message<Integer> m = new Message<>(); m.setMes(100); fun(m); } public static void fun(Message<? extends Number> mes) { //不能够设置(set),但是可以取出 System.out.println(mes.getMes()); }}
2)? super 类:设置泛型下限,方法参数上使用
例子:
-? super String:意味着只能设置String或者是它的父类(Object)
// 用<>super通配符,不能在class上(extends可以)class Message<E> { private E mes; public void setMes(E mes ) { this.mes = mes; } public E getMes() { return mes; }}public class Main { public static void main(String[] args) { Message<Object> m = new Message<>(); m.setMes(12.5); fun(m); } public static void fun(Message<? super String> mes) { //意味着可以传入String类和他的父类Object类 System.out.println(mes.getMes()); }}
0 0
- 泛型(二)之通配符
- Java基础之——泛型(二) 通配符
- Ant应用(二)通配符
- 三大框架学习之----struts2 通配符的使用(二)
- 泛型(通配符)
- 泛型-通配符-------(2)
- 通配符与正则表达式区别(二)
- Linux学习笔记(二十三、通配符)
- 详解Java泛型(四)之通配符类型
- Java 泛型(二) 泛型之中的通配符(Wildcards)使用
- JAVA学习第四十二课 — 泛型(二)—泛型接口&&通配符应用
- Java -- 泛型之通配符(五)
- 二、linux Shell通配符
- 泛型 通配符
- 泛型-通配符
- 泛型 通配符
- Linux Bash Shell学习(二):目录和通配符
- Struts2学习笔记(二) 使用通配符动态调用方法
- [php]继承
- 运算符与表达式(三)——位运算符
- NOIP2015提高组Day1 Message
- Android Studio的安装
- CentOS7安装iptables防火墙
- 泛型(二)之通配符
- Java IO中转换流的作用
- 西二旗完全装逼指南
- STL vector用法介绍
- LeetCode-211.Add and Search Word - Data structure design
- javaEE面试【1】(java反射机制)
- Linux蓝牙系统(3) Linux 命令
- Andorid SDK 国内镜像
- HTML5的FileReader API在浏览器中一行行的读取本地文本文件