泛型 – Groovy中的通用方法
发布时间:2020-12-14 16:20:50 所属栏目:大数据 来源:网络整理
导读:参见英文答案 Groovy Generics failure????????????????????????????????????1个 我目前正在学习Groovy而且我遇到了泛型方法. 我想用泛型返回类型定义泛型方法,该方法是从参数类型推断出来的. 在Java中,签名将是: T T getBean(String name,ClassT requiredT
参见英文答案 >
Groovy Generics failure????????????????????????????????????1个
我目前正在学习Groovy而且我遇到了泛型方法. 我想用泛型返回类型定义泛型方法,该方法是从参数类型推断出来的. 在Java中,签名将是: <T> T getBean(String name,Class<T> requiredType); 我怎样才能在Groovy中实现它? 解决方法
这适用于Groovy 2.2.1:
class MyCollection { def map public <T> void setMap(Map<String,T> map) { this.map = map } public <T> T getBean(String name,Class<T> requiredType) { return map.get(name) } } def myc = new MyCollection() Map<String,Integer> myMap = new HashMap<String,Integer>() myMap.put("abc",123) myMap.put("ijk",456) myc.setMap(myMap) assert 123 == myc.getBean("abc",Integer.class) assert 456 == myc.getBean("ijk",Integer.class) 请注意,该方法是公开的.如果该方法被写为“包受保护”,则不会为我编译. 但是,此编辑适用于包范围: import groovy.transform.PackageScope class MyCollection { // snip @PackageScope <T> T getBean(String name,Class<T> requiredType) { (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容