国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Java泛型復習

Drummor / 412人閱讀

摘要:在類上定義的泛型,在類的方法中也可以使用把泛型定義在類上類型變量定義在類上方法中也可以使用用戶想要使用哪種類型,就在創建的時候指定類型。使用的時候,該類就會自動轉換成用戶想要使用的類型了。

一、什么是泛型?
Java泛型設計原則:只要在編譯時期沒有出現警告,那么運行時期就不會出現ClassCastException異常.

泛型:把類型明確的工作推遲到創建對象或調用方法的時候才去明確的特殊的類型

參數化類型:

ArrayList中的E稱為類型參數變量

ArrayList中的Integer稱為實際類型參數

整個稱為ArrayList泛型類型

整個ArrayList稱為參數化的類型ParameterizedType

二、為什么需要泛型

有了泛型以后:

代碼更加簡潔【不用強制轉換】

程序更加健壯【只要編譯時期沒有警告,那么運行時期就不會出現ClassCastException異常】

可讀性和穩定性【在編寫集合的時候,就限定了類型】

在創建集合的時候,我們明確了集合的類型了,所以我們可以使用增強for來遍歷集合!

//創建集合對象
ArrayList list = new ArrayList<>();
list.add("hello");
list.add("world");
list.add("java");

//遍歷,由于明確了類型.我們可以增強for
for (String s : list) {
    System.out.println(s);
}

三、泛型基礎
泛型類就是把泛型定義在類上,用戶使用該類的時候,才把類型明確下來….這樣的話,用戶明確了什么類型,該類就代表著什么類型…用戶在使用的時候就不用擔心強轉的問題,運行時轉換異常的問題了。

在類上定義的泛型,在類的方法中也可以使用!

/*
    1:把泛型定義在類上
    2:類型變量定義在類上,方法中也可以使用
 */
    public class ObjectTool {
        private T obj;
    
        public T getObj() {
            return obj;
        }
    
        public void setObj(T obj) {
            this.obj = obj;
        }
    }
    

用戶想要使用哪種類型,就在創建的時候指定類型。使用的時候,該類就會自動轉換成用戶想要使用的類型了。

public static void main(String[] args) {

//創建對象并指定元素類型
ObjectTool tool = new ObjectTool<>();

tool.setObj(new String("鐘福成"));
String s = tool.getObj();
System.out.println(s);


//創建對象并指定元素類型
ObjectTool objectTool = new ObjectTool<>();
/**
 * 如果我在這個對象里傳入的是String類型的,它在編譯時期就通過不了了.
 */
objectTool.setObj(10);
int i = objectTool.getObj();
System.out.println(i);

}

定義泛型方法….泛型是先定義后使用的

//定義泛型方法..
public  void show(T t) {
    System.out.println(t);
}

用戶傳遞進來的是什么類型,返回值就是什么類型了

public static void main(String[] args) {
    //創建對象
    ObjectTool tool = new ObjectTool();

    //調用方法,傳入的參數是什么類型,返回值就是什么類型
    tool.show("hello");
    tool.show(12);
    tool.show(12.5);

}

子類明確泛型類的類型參數變量

/*
    把泛型定義在接口上
 */
public interface Inter {
    public abstract void show(T t);
}

實現泛型接口的類…..

/**
 * 子類明確泛型類的類型參數變量:
 */

public class InterImpl implements Inter {
    @Override
    public void show(String s) {
        System.out.println(s);
    }
}

四、泛型的應用
當我們寫網頁的時候,常常會有多個DAO,我們要寫每次都要寫好幾個DAO,這樣會有點麻煩。

public abstract class BaseDao {

    //模擬hibernate....
    private Session session;
    private Class clazz;


    //哪個子類調的這個方法,得到的class就是子類處理的類型(非常重要)
    public BaseDao(){
        Class clazz = this.getClass();  //拿到的是子類
        ParameterizedType  pt = (ParameterizedType) clazz.getGenericSuperclass();  //BaseDao
        clazz = (Class) pt.getActualTypeArguments()[0];
        System.out.println(clazz);

    }


    public void add(T t){
        session.save(t);
    }

    public T find(String id){
        return (T) session.get(clazz, id);
    }

    public void update(T t){
        session.update(t);
    }

    public void delete(String id){
        T t = (T) session.get(clazz, id);
        session.delete(t);
    }

}

繼承抽象DAO,該實現類就有對應的增刪改查的方法了。

public class CategoryDao extends BaseDao {

}
BookDao

public class BookDao extends BaseDao {

}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/71746.html

相關文章

  • 【期末考試季】JAVA進階復習提綱

    摘要:泛型類型對象之間沒有關系,就算之間互為父子關系,也沒有任何關系。泛型類的靜態上下文中類型變量無效。不能捕獲或拋出泛型類的實例。 前言 作為一塊后端沒有太多經驗的年糕,下周要考試了,所以我必須得來好好復習一下我的JAVA進階課/(ㄒoㄒ)/~~。這個學期主要是學了: 泛型 反射 線程 JDBC JAVA WEB基礎 Servlet session&cookie 過濾器&監聽器 泛型 ...

    Jokcy 評論0 收藏0
  • 泛型就這么簡單

    摘要:前言從今天開始進入基礎的復習,可能一個星期會有一篇的十道簡單算法,我寫博文的未必都是正確的如果有寫錯的地方請大家多多包涵并指正今天要復習的是泛型,泛型在中也是個很重要的知識點,本文主要講解基礎的概念,并不是高深的知識,如果基礎好的同學可以當 前言 從今天開始進入Java基礎的復習,可能一個星期會有一篇的,我寫博文的未必都是正確的~如果有寫錯的地方請大家多多包涵并指正~ 今天要復習的是泛...

    novo 評論0 收藏0
  • JAVA快速復習

    摘要:八種基本數據類型數組定義數組元素類型數組名元素類型元素個數和數組長度元素類型數組名元素類型元素元素元素元素內存的劃分寄存器本地方法區方法區棧內存存儲局部變量變量所屬作用域一旦結束變量自動釋放方法進棧局部變量屬于方法所以方法要先進棧堆內存存儲 八種基本數據類型 byte short int long boolean char float double JAVA數組 定義數組 元...

    cppowboy 評論0 收藏0
  • Java基礎-泛型詳解

    摘要:泛型方法可以定義在普通類和泛型類中,泛型方法可以被修飾符修飾。泛型類型變量會在編譯后被擦除,用第一個限定類型替換沒有限定類型的用替換。比如通配符類型代表任何泛型類型的類型變量是和的子類。這個類型參數有一個子類型限定,其自身又是一個泛型類型。 我的博客 轉載請注明原創出處。 序 之所以會想來寫泛型相關的內容,是因為看到這樣的一段代碼: showImg(https://segment...

    hearaway 評論0 收藏0
  • java篇 - 收藏集 - 掘金

    摘要:進階多線程開發關鍵技術后端掘金原創文章,轉載請務必將下面這段話置于文章開頭處保留超鏈接。關于中間件入門教程后端掘金前言中間件 Java 開發人員最常犯的 10 個錯誤 - 后端 - 掘金一 、把數組轉成ArrayList 為了將數組轉換為ArrayList,開發者經常... Java 9 中的 9 個新特性 - 后端 - 掘金Java 8 發布三年多之后,即將快到2017年7月下一個版...

    OpenDigg 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<