欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java泛型的使用限制實例分析

 更新時間:2019年08月07日 11:02:24   作者:cakincqm  
這篇文章主要介紹了Java泛型的使用限制,結(jié)合實例形式分析了不能使用java泛型的情況以及泛型使用的相關(guān)注意事項,需要的朋友可以參考下

本文實例講述了Java泛型的使用限制。分享給大家供大家參考,具體如下:

一 什么情況下不能使用泛型

1 不能使用泛型的形參創(chuàng)建對象。

T o=new T();  // 不允許

2 在泛型類中,不能給靜態(tài)成員變量定義泛型

public class A<T>
{
  public static T t; //錯誤
  public T getA(){ //正確
    ......
  }
}

3 泛型類不能繼承java.lang.Throwable

public class D<T> extends java.lang.Throwable //錯誤

4 泛型類不能初始化一個數(shù)組

T[] b = new T[10]; //錯誤

二 怎樣限制泛型的實例化

泛型類名<T extends 超類>

三 實戰(zhàn)

1 代碼

public class Base<T extends supA> {
  T m;
  Base( T t ) {
    m = t;
  }
  public T getM() {
    return m;
  }
  public void print() {
    System.out.println("base print : " + m);
  }
  public static void main( String[] args ) {
    B bb = new B("test B");
    Base<B> base = new Base<B>(bb);//允許
    //Base<String> base=new Base<String>("base class is general");//不允許
    System.out.println(base.getM());
    supA aa = new supA();
    Base<supA> base1 = new Base<supA>(aa);
    System.out.println(base1.getM());
  }
}
class supA {
  public String toString() {
    return "supA";
  }
}
class B extends supA {
  String b;
  public B( String b ) {
    this.b = b;
  }
  public String toString() {
    return "subB";
  }
}

2 運行

subB
supA

3 說明

通過T extends supA將泛型實例化對象限制到必須是supA或supA的子類。

supA可以是接口,但是extends不能換成implements,必須使用extends。

更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java面向?qū)ο蟪绦蛟O(shè)計入門與進階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設(shè)計有所幫助。

相關(guān)文章

  • springboot學習之構(gòu)建簡單項目搭建步驟詳解

    springboot學習之構(gòu)建簡單項目搭建步驟詳解

    這篇文章主要介紹了springboot學習之構(gòu)建簡單項目搭建步驟詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • Java設(shè)計模式之里氏替換原則精解

    Java設(shè)計模式之里氏替換原則精解

    設(shè)計模式(Design pattern)代表了最佳的實踐,通常被有經(jīng)驗的面向?qū)ο蟮能浖_發(fā)人員所采用。設(shè)計模式是軟件開發(fā)人員在軟件開發(fā)過程中面臨的一般問題的解決方案。本篇介紹設(shè)計模式七大原則之一的里氏替換原則
    2022-02-02
  • Java實現(xiàn)的可選擇及拖拽圖片的面板功能【基于swing組件】

    Java實現(xiàn)的可選擇及拖拽圖片的面板功能【基于swing組件】

    這篇文章主要介紹了Java實現(xiàn)的可選擇及拖拽圖片的面板功能,涉及java基于swing組件選擇與操作圖片元素的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2018-01-01
  • 在SpringBoot中使用JWT的實現(xiàn)方法

    在SpringBoot中使用JWT的實現(xiàn)方法

    這篇文章主要介紹了在SpringBoot中使用JWT的實現(xiàn)方法,詳細的介紹了什么是JWT和JWT實戰(zhàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • MyBatis中resultMap和resultType的區(qū)別詳解

    MyBatis中resultMap和resultType的區(qū)別詳解

    這篇文章主要介紹了MyBatis中resultMap和resultType的區(qū)別詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • Spring Security OAuth2 授權(quán)碼模式的實現(xiàn)

    Spring Security OAuth2 授權(quán)碼模式的實現(xiàn)

    這篇文章主要介紹了Spring Security OAuth2 授權(quán)碼模式的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • javaweb文件打包批量下載代碼

    javaweb文件打包批量下載代碼

    這篇文章主要為大家詳細介紹了javaweb文件打包批量下載代碼,批量下載未批改作業(yè),感興趣的小伙伴們可以參考一下
    2016-06-06
  • js-tab選項卡

    js-tab選項卡

    本文主要介紹了js-tab選項卡的示例代碼。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • Spring中的代理ProxyFactory解析

    Spring中的代理ProxyFactory解析

    這篇文章主要介紹了Spring中的ProxyFactory解析,在Java中,代理模式的實現(xiàn)通常依靠Proxy類和InvocationHandler接口,本文將介紹如何使用ProxyFactory來創(chuàng)建代理模式,需要的朋友可以參考下
    2023-12-12
  • mybatis xml注釋sql的注意事項及說明

    mybatis xml注釋sql的注意事項及說明

    這篇文章主要介紹了mybatis xml注釋sql的注意事項及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07

最新評論