本文共 1089 字,大约阅读时间需要 3 分钟。
在编写Java代码时,理解泛型参数和通配符的概念至关重要。以下将从基础到高级内容详细解释。
实际参数是使用时传递的参数,而不是定义时的参数。关键字不能用于泛型类型定义中。
通配符?是一个泛型通配符,代表未知类型,既可以表示具体的类型,也可以表示任何类型。
Object接收。考虑以下代码:
public class Test1 { public static void main(String[] args) { Person p = new Person<>(); p.setT(new Object()); // 编译错误 Object o = p.getT(); // 只能用Object接收 }} Person<?>是带通配符的泛型类。p.setT(new Object())会编译错误,因为Object不能被赋值给T类型。p.getT()只能返回Object类型。集合处理:
List<Object>可以存储任何对象,但获取时只能用Object接收。List<?>可以存储任意类型的对象,但无法添加具体类型的元素。泛型方法:
上限(extends):
List<? extends Father>,表示类型为Father或其子类。下限(super):
List<? super Son>, 表示类型为Son或其父类。Java 8引入了更智能的类型推断机制,能够更准确地识别泛型类型。
Object。Object。通配符在Java中是处理类型安全的重要工具,理解其特性和使用场景是编写高质量代码的关键。
转载地址:http://kscj.baihongyu.com/