跟王老师学泛型(五): 自定义带泛型声明的方法
2016-05-18 12:40
531 查看
带泛型声明的方法
主讲教师:王少华 QQ群:483773664
学习目标:
掌握泛型方法的定义掌握泛型方法的使用一、需求
假设需要实现这样一个方法,该方法负责将一个Object数组的所有元素添加到一个Collection集合中。/** * 将array中的元素添加到colleciotn中 * @param array * @param c */ public void fromArrayToCollection(Object[] array,Collection<Object> c){ for (Object object : array) { c.add(object); } }上面定义的方法没有任何问题,关键在于上面方法中的c的开通,它的数据类型是Collection<Object>。正如前面所介绍的,Collection<Object>不是Collection<String>类的父类,所以这个方法的功能非常有限。比如下面的情况就会引发编译错误:
二、泛型方法
方法,也可以被泛型化,不管此时定义在其中的类是不是泛型化的。在泛型方法中可以定义泛型参数,此时,参数的类型就是传入数据的类型。(一)、语法修饰符 <T,S> 返回值类型 方法名(形参列表){ }泛型方法的语法跟普通方法的语法不同之处在于:多了类型形参声明,类型形参声明以尖括号括起来,多个类型形参之间以逗号隔开,所有类型形参声明放在方法修饰符和方法返回值类型之间。
(二)参考代码
/** * 将array中的元素添加到colleciotn中 * @param array * @param c */ public <T> void fromArrayToCollection(T[] array,Collection<T> c){ for (T t : array) { c.add(t); } }
(三)测试
public class GenericTest { public static void main(String[] args) { Needs needs = new Needs(); String[] names = {"孙悟空","猪八戒","沙悟净"}; List<String> c = new ArrayList<String>(); needs.fromArrayToCollection(names, c); Double[] doubles = {2.14,3.14}; List<Double> doubleList = new ArrayList<Double>(); needs.fromArrayToCollection(doubles, doubleList); } }
四、泛型方法:静态泛型方法
public static <T> void show(T t){ }
五、学习视频网址:
http://edu.51cto.com/course/course_id-6083.html相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Ruby 之 class 中的 private、 protected、public
- C#实现将数组内元素打乱顺序的方法
- jQuery删除一个元素后淡出效果展示删除过程的方法
- c# 所有类型都从Object类型派生
- jQuery拖动元素并对元素进行重新排序
- Perl中怎样从数组中删除某个值?
- C# Dynamic关键字之:解析dynamic就是Object
- PHP的数组中提高元素查找与元素去重的效率的技巧解析
- 什么是DAO Database Access Object
- Ruby中的public、private、protected区别小结
- javascript学习笔记(十八) 获得页面中的元素代码
- javascript实现在某个元素上阻止鼠标右键事件的方法和实例
- 浅谈Javascript中Object与Function对象
- swtich/if...else的替代语句
- jQuery验证元素是否为空的两种常用方法
- JavaScript中的object转换成number或string规则介绍
- JavaScript中Object和Function的关系小结
- JavaScript实现获取某个元素相邻兄弟节点的prev与next方法
- 深入理解JavaScript系列(12) 变量对象(Variable Object)