首页 > 编程知识 正文

java泛型方法返回泛型,泛型方法有哪些

时间:2023-05-04 19:38:08 阅读:227671 作者:3840

Generic Methods 泛化方法就是一个引进了自己的类型参数(type parameter)的方法。就很像去申明了一个泛型(generic type)。但是类型参数的范围被限制在方法里。静态,非静态甚至构造方法都可以是泛化方法。
泛化方法的语法包括了一个在尖括号里的类行参数(type parameter),在方法的返回类型前出现。对于静态泛化方法,类型参数部分必须在方法返回类型之前出现。(注意代码中黑体部分)
Util 类包含一个泛化方法,compare,比较两个 Pair 对象:
public class Util{ public static <K,V> boolean compare(Pari<K,V> p1, Pair<K,V> p2){ return p1.getKey().equals(p2.getKey()) && p1.getValue().equals(p2.getValue()); } }
public class Pair<K,V>{ 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; } }
调用这个泛化方法:
Pair<Integer,String> p1 = new Pair<>(1,"apple"); Pair<Integer,String> p2 = new Pair<>(2,"pear"); boolean same = Util. <Integer,String>compare(p1,p2);
注意黑体字,类型已经明确给定了,也就是说传入的参数p1 p2的参数类型是黑体字部分。 另外,其实黑体部分也可以省去,编译器也会推断出需要的类型。
Pair<Integer,String> p1 = new Pair<>(1,"apple"); Pair<Integer,String> p2 = new Pair<>(2,"pear"); boolean same = Util.compare(p1,p2);
这种特性就是 类型引用(type inference),允许你调用一个泛化方法就像调用一个普通的方法,不需要特别定义类型。更多详细参考类型引用部分。






版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。