Java 泛型与通配符 定义与使用
2022/9/4 1:22:53
本文主要是介绍Java 泛型与通配符 定义与使用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、泛型
- 定义:
把类型明确的工作推迟到创建对象或调用方法时才明确的类型,简而言之,未明确的数据类型。 - 类型:
泛型类,泛型方法,方形接口。 - 格式
- 泛型类格式:class 类名<E变量>{}
- 泛型方法格式:修饰符 <泛型> 返回值类型 方法名(参数列表(使用泛型)){方法体}
- 泛型接口格式:修饰符 interface 接口名<>{ 必须是抽象的方法}
- 使用:
泛型类: public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable { /** * Constructs an empty list with the specified initial capacity. * * @param initialCapacity the initial capacity of the list * @throws IllegalArgumentException if the specified initial capacity * is negative */ public ArrayList(int initialCapacity) { if (initialCapacity > 0) { this.elementData = new Object[initialCapacity]; } else if (initialCapacity == 0) { this.elementData = EMPTY_ELEMENTDATA; } else { throw new IllegalArgumentException("Illegal Capacity: "+ initialCapacity); } } }
泛型方法: public class WideType { public static void main(String[] args) { WideType m=new WideType(); m.method(1); m.method("倪妮"); m.method(true); m.method(8.8); System.out.println("--------"); method2(8); method2("蔡卓亦的微笑"); method2(9.9); method2("l love java"); } public <E> void method(E e){ System.out.println(e); } public static <E> void method2(E e){ System.out.println(e); } }
泛型接口: public interface Iterator<E> { boolean hasNext(); E next(); }
二、通配符 ?
- 定义:
代表任意的数据类型;不能创建对象使用,只能在方法中使用 - 使用
public static void main(String[] args) { ArrayList<String> list=new ArrayList<>(); list.add("倪妮"); list.add("真漂亮!"); list.add("feel"); ArrayList<Integer> list3=new ArrayList<>(); list3.add(2); list3.add(0); print(list); print(list3); } public static void print(ArrayList<?> list2){ Iterator<?> it=list2.iterator(); while(it.hasNext()){ Object next = it.next(); System.out.println(next); } }
这篇关于Java 泛型与通配符 定义与使用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-04-26敏捷开发:想要快速交付就必须舍弃产品质量?
- 2024-04-26静态代码分析的这些好处,我竟然都不知道?
- 2024-04-26你在测试金字塔的哪一层?(下)
- 2024-04-26快刀斩乱麻,DevOps让代码评审也自动起来
- 2024-04-262024年最好用的10款ER图神器!
- 2024-04-2203-为啥大模型LLM还没能完全替代你?
- 2024-04-2101-大语言模型发展
- 2024-04-17基于SpringWeb MultipartFile文件上传、下载功能
- 2024-04-14个人开发者,Spring Boot 项目如何部署
- 2024-04-14RAG应用开发实战02-相似性检索的关键 - Embedding