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

資訊專欄INFORMATION COLUMN

Java知識點總結(反射-反射操作泛型)

AprilJ / 3010人閱讀

摘要:知識點總結反射反射操作泛型知識點總結反射采用泛型擦除的機制來引入泛型。中的泛型僅僅是給編譯器使用的,確保數據的安全性和免去強制類型轉換的麻煩。

Java知識點總結(反射-反射操作泛型)

@(Java知識點總結)[Java, 反射]

Java采用泛型擦除的機制來引入泛型。Java中的泛型僅僅是給編譯器javac使用的, 確保數據的安全性和免去強制類型轉換的麻煩 。但是,__一旦編譯完成,所有的和泛型有關的類型全部擦除__。

為了通過反射操作這些類型以迎合實際開發的需要,Java就新增了ParameterizedType,GenericArrayType,TypeVariable 和WildcardType幾種類型來代表不能被歸一到Class類中的類型但是又和原始類型齊名的類型。

ParameterizedType: 表示一種參數化的類型,比如Collection

GenericArrayType: 表示一種元素類型是參數化類型或者類型變量的數組類型

TypeVariable: 是各種類型變量的公共父接口

WildcardType: 代表一種通配符類型表達

示例:

import java.lang.reflect.Method;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.List;
import java.util.Map;
 
 
public class Test06 {
  
  public void t1(Map map , List list){
    System.out.println("t1");
  }
  
  // 獲得指定方法,參數的泛型信息
  private static void test1() {
    try {
     Method m = Test06.class.getMethod("t1", Map.class,List.class);
     Type[] types = m.getGenericParameterTypes();
     for (Type paramType : types) {
       System.out.println("#"+paramType);
       
       if (paramType instanceof ParameterizedType) {
         Type[] genericTypes = ((ParameterizedType)paramType).getActualTypeArguments();
         for (Type genericType : genericTypes) {
          System.out.println("————參數泛型類型:"+genericType);
         }
         
       }
     }
    } catch (Exception e) {
     e.printStackTrace();
    }
  }
  
  public Map t2(){
    System.out.println("t2");
    return null;
  }
  
  // 獲取指定方法返回值泛型信息
  private static void test2() {
    try {
     Method m = Test06.class.getMethod("t2", null);
     Type returnType = m.getGenericReturnType();
     if (returnType instanceof ParameterizedType) {
       Type[] genericTypes = ((ParameterizedType)returnType).getActualTypeArguments();
       for (Type genericType : genericTypes) {
         System.out.println("返回值泛型類型:"+genericType);
       }
     }
     
    } catch (NoSuchMethodException | SecurityException e) {
     e.printStackTrace();
    }
  }
 
  public static void main(String[] args) {
    test1();
    System.out.println("-------------");
    test2();
  }
}

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

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

相關文章

  • Java學習路線總結,搬磚工逆襲Java架構師(全網最強)

    摘要:哪吒社區技能樹打卡打卡貼函數式接口簡介領域優質創作者哪吒公眾號作者架構師奮斗者掃描主頁左側二維碼,加入群聊,一起學習一起進步歡迎點贊收藏留言前情提要無意間聽到領導們的談話,現在公司的現狀是碼農太多,但能獨立帶隊的人太少,簡而言之,不缺干 ? 哪吒社區Java技能樹打卡?【打卡貼 day2...

    Scorpion 評論0 收藏0
  • 1、類加載器 2、反射構造方法 3、反射成員變量 4、反射成員方法 5、反射配置文件運行類中的方法

    摘要:通過反射獲取無參構造方法并使用得到無參構造方法獲取所有的修飾的構造方法。如果方法沒有返回值,返回的是反射獲取空參數成員方法并運行代碼演示反射獲取成員方法并運行獲取對象中的成員方法獲取的是文件中的所有公共成員方法包括繼承的類是描述 01類加載器 * A.類的加載 當程序要使用某個類時,如果該類還未被加載到內存中,則系統會通過加載,連接,初始化三步來實現對這個類進行初始化。 ? ...

    Profeel 評論0 收藏0
  • 第12章 元編程與注解、反射 《Kotlin 項目實戰開發》

    摘要:第章元編程與注解反射反射是在運行時獲取類的函數方法屬性父類接口注解元數據泛型信息等類的內部信息的機制。本章介紹中的注解與反射編程的相關內容。元編程本質上是一種對源代碼本身進行高層次抽象的編碼技術。反射是促進元編程的一種很有價值的語言特性。 第12章 元編程與注解、反射 反射(Reflection)是在運行時獲取類的函數(方法)、屬性、父類、接口、注解元數據、泛型信息等類的內部信息的機...

    joyqi 評論0 收藏0
  • Java識點總結反射-介紹)

    摘要:知識點總結反射介紹知識點總結反射反射程序在運行狀態中,可以動態加載一個只有名稱的類動態調用類的所有屬性和方法加載完類之后,在堆內存中,就產生了一個類型的對象一個類只有一個對象。 Java知識點總結(反射-介紹) @(Java知識點總結)[Java, 反射] 反射 程序在 運行狀態中 ,可以動態加載一個只有名稱的類 (動態調用類的所有屬性和方法)Class c = Class.for...

    msup 評論0 收藏0
  • Java識點匯總

    摘要:由于類型擦除機制的存在,泛型類中的類型參數等信息,在運行時刻是不存在的。對此,對類文件的格式做了修訂,添加了屬性,用來包含不在類型系統中的類型信息。在運行時刻,會讀取屬性的內容并提供給反射來使用。 OOP 對象的創建和拷貝 對象的初始化 多態的實現 內部類、匿名類、靜態類 對象內存模型 上面內容均請參考以下文章: 談談Java的面向對象 運行時 異常 聊聊Java的異常機制及實現 ...

    Chao 評論0 收藏0

發表評論

0條評論

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