怎么用java反射獲取內(nèi)部類

小億
144
2023-11-03 13:30:52

要使用Java反射獲取內(nèi)部類,可以按照以下步驟進(jìn)行操作:

  1. 獲取外部類的Class對(duì)象:

    Class<?> outerClass = OuterClass.class;
    
  2. 獲取內(nèi)部類的Class對(duì)象:

    // 非靜態(tài)內(nèi)部類
    Class<?> innerClass = outerClass.getDeclaredClasses()[0];
    
    // 靜態(tài)內(nèi)部類
    Class<?> innerClass = OuterClass.InnerClass.class;
    
  3. 可以使用Class.forName()方法來(lái)獲取內(nèi)部類的Class對(duì)象:

    Class<?> innerClass = Class.forName("com.example.OuterClass$InnerClass");
    

注意事項(xiàng):

  • 內(nèi)部類的Class對(duì)象的名稱為外部類的類名后跟"$"符號(hào),再跟上內(nèi)部類的類名。
  • 非靜態(tài)內(nèi)部類的Class對(duì)象需要通過(guò)外部類的Class對(duì)象來(lái)獲取,而靜態(tài)內(nèi)部類的Class對(duì)象可以直接獲取。

以上就是使用Java反射獲取內(nèi)部類的方法。

0