泛型的使用能够大大程序的安全性,java泛型即在jdk1.5以后提出的一种语言系统的扩展,咱们平常的代码中也经常会遇到,之前没有太多去在乎留意他的做用,不过在引用的泛型以后肯定能带来一些便利。 java
java中咱们经常使用Map,list,javabean,等等方式来保存数据的格式或数据自己,,,在应用的过程当中,强制转换数据的类型是无奈之举,如在用map 安全
eg: ide
public class TestA { public static void main(String[] args) { Map map = new HashMap(); map.put("age", "string"); int n = (Integer) map.get("name");//强制转化,设计思想,原来的数据格式定在程序猿的脑海中,取数据忘记数据的格式!!! System.out.println(n); Map<String,Integer> map1 = new HashMap<String,Integer>(); //引入泛型 map1.put("name", 2); //引入除Integer其余类型会报异常 int m = map1.get("name"); System.out.println(m); } }
简单方便。下面介绍泛型在代码中的应用。 this
案列介绍:供货公司ComA;其中ComA有送货员A1和A2;如今咱们须要只指定公司的人员送货; spa
代码以下: 设计
ComA.java code
package com.swastika.generic.test; public interface ComA { public void sendMessage(); }
package com.swastika.generic.test; public class ComA1 implements ComA{ @Override public void sendMessage() { // TODO Auto-generated method stub System.out.println("A公司送货员A1"); } }
package com.swastika.generic.test; public class ComA2 implements ComA{ @Override public void sendMessage() { // TODO Auto-generated method stub System.out.println("A公司送货员A2"); } }
package com.swastika.generic.test; public class TestA<T extends ComA> { //指定人员 T t; public TestA(T t) { // TODO Auto-generated constructor stub this.t = t; } public void say(){ t.sendMessage(); } public static void main(String[] args) { ComA1 a1 = new ComA1(); ComA2 a2 = new ComA2(); TestA<ComA1> test = new TestA<ComA1>(a1); //指定人员a1, test.say(); } }