簡體   English   中英

需要根據泛型類的類型創建不同的類

[英]Need to create different class depending on type in Generic class

我正在使用為不同結構生成不同類的工具

例如,它可能會創建兩個這樣的類

  class TypeSupportImpl {
      void callme()
      {
          System.out.println("I an here");
      }

      void test()
      {

      }
  }

 public class StringReader extends  TypeSupportImpl
 {
     void callme()
     {
         System.out.println("HelloReader an here");
     }

     void test()
     {

     }

     public static String get_name() {
         String s = "hello"; 
         return s ;
     }
 }

public class HelloReader extends  TypeSupportImpl
{
    void callme()
    {
        System.out.println("HelloReader an here");
    }

    void test()
    {

    }

    public static String get_name() {
        String s = "hello"; 
        return s ;
    }
}

現在,我想為此類編寫一個通用包裝。 我希望通用包裝器以如下方式運行:如果用戶將Hello傳遞為類型,則應創建Helloreader對象。 如果用戶使用String低音,則應創建一個StringReader對象。

public class TestCode<T > {
    //if T= Hello
    HelloReader.get_name();
    //if T== String
    StringReader.get_name()
}

您能建議不使用反射的最佳方法嗎?

即使反射,您也無法做到。 類型擦除意味着在運行時,您將看不到類型參數是什么,即使將其作為參數傳遞(請參閱EnumSet的構建器),也必須使用反射,因為static元素在編譯時綁定到特定類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM