泛型方法
泛型方法是引入其自己的类型参数的方法,这类似于声明泛型类型,但类型参数的范围仅限于声明它的方法,允许使用静态和非静态泛型方法,以及泛型类构造函数。
泛型方法的语法包括类型参数列表,在尖括号内,它出现在方法的返回类型之前,对于静态泛型方法,类型参数部分必须出现在方法的返回类型之前。
Util类包含一个泛型方法compare,它比较两个Pair对象:
public class Util { public staticboolean compare(Pair p1, Pair p2) { return p1.getKey().equals(p2.getKey()) && p1.getValue().equals(p2.getValue()); } } public class Pair { private K key; private V value; public Pair(K key, V value) { this.key = key; this.value = value; } public void setKey(K key) { this.key = key; } public void setValue(V value) { this.value = value; } public K getKey() { return key; } public V getValue() { return value; } }
调用此方法的完整语法如下:
Pairp1 = new Pair<>(1, "apple"); Pair p2 = new Pair<>(2, "pear"); boolean same = Util. compare(p1, p2);
该类型已明确提供,通常,这可以省略,编译器将推断所需的类型:
Pairp1 = new Pair<>(1, "apple"); Pair p2 = new Pair<>(2, "pear"); boolean same = Util.compare(p1, p2);
此功能称为类型推断,允许你将泛型方法作为普通方法调用,而无需在尖括号之间指定类型,本主题将在下一节“类型推断”中进一步讨论。
上一篇:泛型原始类型 下一篇:有界类型参数文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/72924.html
Java™ 教程 Java教程是为JDK 8编写的,本页面中描述的示例和实践没有利用在后续版本中引入的改进。 Java教程是希望使用Java编程语言创建应用程序的程序员的实用指南,其中包括数百个完整的工作示例和数十个课程,相关课程组被组织成教程。 覆盖基础知识的路径 这些教程以书籍的形式提供,如Java教程,第六版,前往Amazon.com购买。 入门 介绍Java技术和安装Java开发软件并使用...
类型推断 类型推断是Java编译器查看每个方法调用和相应声明的能力,以确定使调用适用的类型参数,推理算法确定参数的类型,如果可用,还确定分配或返回结果的类型,最后,推理算法尝试查找适用于所有参数的最具体类型。 为了说明最后一点,在下面的示例中,推断确定传递给pick方法的第二个参数是Serializable类型: static T pick(T a1, T a2) { return a2; } ...
泛型原始类型 原始类型是没有任何类型参数的泛型类或接口的名称,例如,给定Box泛型类: public class Box { public void set(T t) { /* ... */ } // ... } 要创建参数化类型的Box,请为形式类型参数T提供实际类型参数: Box intBox = new Box(); 如果省略实际的类型参数,则创建一个原始类型Box: Box...
泛型类型 泛型类型是通过类型参数化的泛型类或接口,修改以下Box类以演示此概念。 一个简单的Box类 首先检查一个对任何类型的对象进行操作的非泛型Box类,它只需要提供两个方法:set,它将一个对象添加到box中,get,它将检索它: public class Box { private Object object; public void set(Object object) ...
泛型 在任何重要的软件项目中,bug都是不可避免的,仔细的规划、编程和测试可以帮助减少它们的普遍性,但是它们总会在某个地方以某种方式潜入你的代码,随着新功能的引入以及你的代码库在规模和复杂性方面的增长,这一点变得尤为明显。 幸运的是,一些错误比其他错误更容易被发现,例如,编译时错误可以在早期检测到,你可以使用编译器的错误消息来确定问题所在并立即修复它。但是,运行时错误可能会更成问题,它们并不总是立...
阅读 3847·2021-09-27 13:36
阅读 4371·2021-09-22 15:12
阅读 3044·2021-09-13 10:29
阅读 1802·2021-09-10 10:50
阅读 2331·2021-09-03 10:43
阅读 486·2019-08-29 17:10
阅读 426·2019-08-26 13:52
阅读 3201·2019-08-23 14:37