Java泛型接口MyList<E>中的<E>具体含义是什么?
关于MyList接口中E的含义解释
E是Java泛型的类型参数占位符,这里遵循Java集合类的通用命名惯例,指代列表存储的「元素(Element)」的类型。
具体作用
泛型的核心作用是把类型作为参数动态传入,不需要在定义接口的时候就写死列表支持的元素类型。你在实际声明MyList的实现类实例时,可以自行指定具体的元素类型:
// 声明一个存储String类型元素的列表 MyList<String> strList = new MyList实现类(); // 声明一个存储Integer类型元素的列表 MyList<Integer> intList = new MyList实现类();
指定类型后,接口中所有用到E的位置都会被替换成你指定的实际类型,以MyList<String>为例,接口方法会自动适配为:
String getElement(String data) throws NoSuchElementException; boolean delete(String data); boolean search(String data);
这种实现可以在编译阶段就完成类型校验,避免运行时出现类型转换异常,也不需要你手动对存取的元素做类型强转。
常见泛型参数命名惯例
E:指代元素(Element),多用于列表、集合类定义K:指代键(Key),多用于键值对结构的键位定义V:指代值(Value),多和K配对用于Map类定义T:指代通用类型(Type),泛指任意类型,多用于通用工具类定义
另外你代码里的MyList<?>中的?是泛型通配符,代表可以匹配任意元素类型的MyList实例。
内容的提问来源于stack exchange,提问作者Julliard - Kun
相关产品推荐
相关产品推荐

