008 The Generics In JAVA
2015-10-27 17:14
381 查看
泛型是JAVA的核心特型之一,我们先看一个例子:
没有使用泛型前,如下:
使用泛型后如下:
泛型也可以用于Class,例如:
使用泛型前,是这样的:
使用泛型后,是这样的:
没有使用泛型前,如下:
import java.util.ArrayList; import java.util.List; public class GenericsStu { public static void main(String[] args) { List list = new ArrayList(); String name = "gavin"; Integer age = 5; list.add(name); list.add(age); for (Object obj : list) { String str = (String) obj; // Exception in thread "main" // java.lang.ClassCastException: // java.lang.Integer cannot be cast to // java.lang.String } } }
使用泛型后如下:
import java.util.ArrayList; import java.util.List; public class GenericsStu { public static void main(String[] args) { List<String> list = new ArrayList<String>(); String name = "gavin"; Integer age = 5; list.add(name); list.add("hello"); list.add(age);//这个在编译时就提示类型不匹配,如果用的是eclipse,会及时显示错误,避免了运行时异常。 for (String str : list) { System.out.println(str); } } }
泛型也可以用于Class,例如:
使用泛型前,是这样的:
public class GenericsStu { private Object t; public Object get() { return t; } public void set(Object t) { this.t = t; } public static void main(String args[]){ GenericsStu type = new GenericsStu(); type.set(2); String str = (String) type.get(); //Exception in thread "main" java.lang.ClassCastException: //java.lang.Integer cannot be cast to java.lang.String System.out.println(str); } }
使用泛型后,是这样的:
public class GenericsStu<T> { private T t; public T get(){ return this.t; } public void set(T t){ this.t=t; } public void print(){ System.out.println(t); } public static void main(String args[]){ GenericsStu<String> type = new GenericsStu<String>(); type.set("gavin"); type.print();//Output is:gavin type.set(2); //编译就不通过,避免了运行时java.lang.ClassCastException type.print(); } }
相关文章推荐
- java继承2-构造函数详细
- Java的反射reflect使用
- 用POI导出数据到excel文件
- Json字符串和Java对象转换利器——Jackson
- Java点滴-List<Integer> list; 中尖括号的意思
- Java设计模式1——策略模式(Strategy Pattern)
- SpringMVC与LogBack集成
- Java:进制转换
- Spring MVC 乱码问题
- HashMap实现原理
- 运用java在数组键盘输入的位置加入元素
- Ubuntu 12.04下配置JDK7
- java关键字this使用
- Quartz与Spring的整合-Quartz中的job如何自动注入spring容器托管的对象
- java 线程中unchecked exception处理
- eclipse设置和优化
- Java集合框架总结
- eclipse下使用MultiDex解决65536限制
- 简要总结破解myeclipse10的方法
- eclipse 中git解决冲突