簡體   English   中英

如何使用Java中的反射確定泛型類型的構造函數參數數量?

[英]How can I determine amount of constructor parameters for a generic type using reflections in java?

我需要確定泛型方法中構造函數在運行時接受多少個參數。 我知道每個類型T都擴展相同的基類,並且每個類型都只有一個構造函數,但是它們采用的參數數量不同。

public T someMethod() {
    // get amount of parameters T constructor takes
}

有沒有簡單的方法可以實現這一目標?

不會。由於類型擦除 ,無法從具有該簽名的方法中找到有關T任何信息。

如果將方法更改為接受類型令牌 ,則可以:

public T someMethod(Class<T> clazz) {
    // eg:
    Constructor<?>[] constructors = clazz.getConstructors();
    // eg:
    constructors[i].getParameterTypes();
}

暫無
暫無

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

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