泛型参数Generic
来源:互联网 发布:网络执法官3.56破解版 编辑:程序博客网 时间:2024/05/29 15:47
泛型是参数化的一种类型,只在编译时起作用,类似于在某个容器上贴一个标签。
例如我们常见的List<T> ,Set<E> ,Map<K,V> 其中E,K,V都是泛型。
泛型的作用:官方解释首先:泛型是java1.5提供的新特性;主要是为了解决数据类型的安全性问题,是在类声明的时候通过一个标示表示类中某个属性的类型或者是某个方法的返回值以及参数类型。这样在类声明或者实例化的时候只要指定好需要的类型即可。
泛型的应用通常分三种:
一,类泛型:
上面的List<E> 就是,通常是在实例化对象时,确定泛型的类型,一旦确定就会受限制。
public class GenericClass { static class MyList<T>{ArrayList<Object> list;private void add(T t){if(list==null){list=new ArrayList<Object>();}list.add(t);}} public static void main(String[] args) {MyList listStr=new MyList();listStr.add(2);}}这段代码不会报错,
public class GenericClass { static class MyList<T>{ArrayList<Object> list;private void add(T t){if(list==null){list=new ArrayList<Object>();}list.add(t);}} public static void main(String[] args) {MyList<String> listStr=new MyList<String>();//确定了泛型的类型StringlistStr.add(2);}}这段代码就会报错!
二,方法泛型:方法泛型比之类泛型更为灵活,类泛型需要在实例化时,确定泛型的类型,方法泛型则可
以在方法调用时灵活的确定泛型的类型:
例如:
public class GenericMethod {//为此方法声明已个特有的类型 static <T> T getObject(Class<T> c) { try {return c.newInstance();} catch (Exception e) {e.printStackTrace();return null;} } public static void main(String[] args) {try {System.out.println(getObject(Class.forName("hanzitopingyin.HanZiToPingYin")).toString());} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}此方法可以根据Class参数,灵活的得到一个类对象。(当然有可能会说多此一举,因为Class.newInstance();就可以得到,这里只是,就灵活性做一个简单的说明。)
三,泛型的继承,(? 为通配符)
List<? extends Object> list1=new ArrayList<String>();对于list1来说只要邮编对象的泛型是Object的子类就可以了!
List<? super String> list2=new ArrayList<String>();对list2来说只要右边对象的泛型是String的父类就可以了!
0 0
- 泛型参数Generic
- Swift 泛型参数(Generic Parameters and Arguments)
- 使用泛型类型System.Collections.Generic.Icomparer <T> 需要一个类型参数
- MSDN:使用泛型 类型“System.Collections.Generic.IComparer <T> ”需要“1”个类型参数”。
- 使用泛型 类型System.Collections.Generic.KeyValuePair需要2个类型参数
- 获得泛型(generic class)参数类型T的实际类型(actual type)
- 泛型方法Generic Method
- 关于泛型(Generic)
- Java中的泛型(Generic)
- java之泛型(Generic)
- java之泛型(Generic)
- Java中的泛型(Generic)
- The Java™ Tutorials — Generics :Generic Methods and Bounded Type Parameters 泛型方法和受限类型参数
- 泛型爪哇(Generic Java)
- Java 的泛型程序设计( Generic Programing)
- java 中的泛型 generic(未完成)
- C#泛型编程(Generic Programming)
- Java中的泛型编程(generic programming)和泛型类(generic class)
- 【Python】科学计算(一)——Mandelbrot集合
- Configuration(AnnotationConfiguration)
- 深入浅出的讲解傅里叶变换(2)
- pow函数总结
- HDU 1012 u Calculate e
- 泛型参数Generic
- android开发ViewPager按比例显示图片(显示下一张图片的一部分)
- Andorid-15k+的面试题
- String,StringBuffer与StringBuilder的区别??
- set集合容器
- Java查找算法(五): 散列表查找
- SetTimer函数用法
- Android创建启动画面
- 【金融】金融数学(一)——术语概念