簡體   English   中英

檢查 class 是否為泛型

[英]Check if a class is generic type

也許這不是一個大問題,但我無法弄清楚。 有沒有辦法檢查 class 是否被定義為泛型類型。 我不想定義這個 class 的實例,我只是想知道,如果這個 class 被定義為普通的 class 或 20AB61A2D2ED4FDCC4 泛型類型 class。

這將是第一個 Class,它的類型是 Generic

public class MyGenericClass<T, G> {

    public void someMethod(T firstParam, G secondParam){
        // do something
    }
}

這將是第二個也是正常的 Class

public class AnotherClass {

   public void someMethod(){
       // do something
   }
}

我想要一種方法來找出這個結果

isGenericType(MyGenericClass.class) --> true
isGenericType(AnotherClass.class) --> false

Class<?> object您可以檢查cls.getTypeParameters()

從通用 class 你得到一個非空的TypeVariable數組。

從非通用 class 你得到一個空數組。

例如

java.util.List.class.getTypeParameters()
TypeVariable[1] { E }
String.class.getTypeParameters()
TypeVariable[0] {}

暫無
暫無

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

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