Java通配符?提升泛型灵活性,分无界(?)、上界(? extends T)和下界(? super T);遵循PECS原则:生产用extends,消费用super,避免同时读写。

Java中的通配符主要用于泛型方法的参数中,用来增强代码的灵活性和可重用性。通配符用?表示,可以配合extends和super关键字使用,分别限定上界和下界。
通配符有三种常见形式:
当你只关心集合的操作而不涉及具体元素类型时,可以使用?。例如,打印一个列表的所有元素:
这里不能向list中添加除null以外的任何元素,因为类型未知,但可以安全地读取元素并当作Object处理。
立即学习“Java免费学习笔记(深入)”;
适用于需要从泛型结构中“读取”数据的场景。例如,计算一个数字列表的总和:
public double sum(java.util.List<? extends Number> numbers) {这个方法可以接收List<Integer>、List<Double>等,只要它们是Number的子类。但不能往里面添加Integer或Double,因为实际类型不确定。
MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plan Old Java Objects,普通的 Java 对象)映射成数据库中的记录。有需要的朋友可以下载看看
1
适用于需要向泛型结构中“写入”数据的场景。例如,将一组整数添加到一个可以容纳Integer及其父类型的列表中:
这个方法可以接收List<Integer>、List<Number>、List<Object>等。你可以安全地添加Integer对象,但从中读取的元素只能当作Object使用。
这是使用通配符的重要指导原则:
? extends T。? super T。例如,Java集合框架中的Collections.copy()方法就遵循这一原则:
从src读取(生产者 → extends),向dest写入(消费者 → super)。
基本上就这些。通配符让泛型更灵活,但也要注意“不能同时读写”的限制,合理使用才能写出安全又通用的代码。
以上就是java方法参数中通配符的使用的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号