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

Java泛型的使用限制實(shí)例分析

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

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

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

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

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

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

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

3 泛型類(lèi)不能繼承java.lang.Throwable類(lèi)

public class D<T> extends java.lang.Throwable //錯(cuò)誤

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

T[] b = new T[10]; //錯(cuò)誤

二 怎樣限制泛型的實(shí)例化

泛型類(lèi)名<T extends 超類(lèi)>

三 實(shí)戰(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 運(yùn)行

subB
supA

3 說(shuō)明

通過(guò)T extends supA將泛型實(shí)例化對(duì)象限制到必須是supA或supA的子類(lèi)。

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

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

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

相關(guān)文章

  • springboot學(xué)習(xí)之構(gòu)建簡(jiǎn)單項(xiàng)目搭建步驟詳解

    springboot學(xué)習(xí)之構(gòu)建簡(jiǎn)單項(xiàng)目搭建步驟詳解

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

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

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

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

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

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

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

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

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

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

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

    javaweb文件打包批量下載代碼

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

    js-tab選項(xiàng)卡

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

    Spring中的代理ProxyFactory解析

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

    mybatis xml注釋sql的注意事項(xiàng)及說(shuō)明

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

最新評(píng)論