Java的泛型

java泛型

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



ComA1.java



package com.swastika.generic.test;

public class ComA1 implements ComA{

	@Override
	public void sendMessage() {
		// TODO Auto-generated method stub
		System.out.println("A公司送貨員A1");
	}

}



ComA2.java



package com.swastika.generic.test;

public class ComA2 implements ComA{

	@Override
	public void sendMessage() {
		// TODO Auto-generated method stub
		System.out.println("A公司送貨員A2");
	}

}



TestA.java
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();
	}
	
}
相關文章
相關標籤/搜索