泛型的使用能夠大大程序的安全性,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(); } }