java泛型

最近在學習js和php被打擊了一下,警告本身要按部就班,要樂於請教。php

剛學完java,爲了鞏固本身的知識和爲別人提供一些微末的幫助決定開通博客,求各位大牛們指出個人錯誤,也但願個人總結能夠對別人有幫助。java

泛型是java1.5引入的新特性,主要是引入了類型參數這個概念。360百科中這樣說——在程序編碼中一些包含參數的類。小程序

類型——參數?參數在我印象中是方法的形式參數,可是在類中出現參數有什麼意義嗎?先看一個例子————數組

import java.util.ArrayList;
import java.util.List;
//下面爲不使用泛型的狀況
public class Generdemo {
    public static void main(String args[]){
        List list = new ArrayList();
        list.add("monkey");
        list.add("animal");
        list.add(18);
        for(int i=0;i<list.size();i++){
            String str = (String)list.get(i);
            //一會我會運行下面那個語句注意控制檯
            //System.out.println(list.get(i));
        }
    }
}

 

monkey
animal
18
Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
    at genercity.Generdemo.main(Generdemo.java:12)

推薦新手敲一遍,上面的程序把String 和 Int類型的數據加入Arraylist數組,而後在強制轉換爲String類型這時運行程序控制臺會報錯,經過上面咱們能夠看到若是不肯定數組裏的元素類型的時候不使用泛型會給咱們的開發帶來不少的麻煩。在看代碼————安全

List<String> list = new ArrayList<String>();
        list.add("monkey");
        list.add("animal");
     //下面這句話報錯啦 list.add(
18);

經過給數組加入類型參數,能夠在程序運行階段對加入數組中的元素進行斷定(動態綁定),判斷是否符合要求,加強了程序的安全性,這是泛型引入後的一個優勢。在看代碼————學習

//代碼複用
public class Generdemo2<T> {
	private T X;

	public T getX() {
		return X;
	}

	public void setX(T x) {
		X = x;
	}
	public static void main(String args[]){
		Generdemo2<String> person= new Generdemo2<String>();
		person.setX("Monkey");
		System.out.println("泛型的複用——String:"+person.getX());
		
		Generdemo2<Integer> age = new Generdemo2<Integer>();
		age.setX(18);
		System.out.println("泛型的複用——Integer:"+age.getX());
	}
}

 

泛型的複用——String:Monkey
泛型的複用——Integer:18

 

這一次咱們給一個類傳遞了一個形式參數,再調用時咱們給參數指定了具體了類型,經過這一個小程序能夠看出泛型不只增長了程序的安全性,也使程序具備很強的可讀性和複用性。要開始新階段啦,先寫到這。編碼

相關文章
相關標籤/搜索