![](/img/trans.png)
[英]Using Java Annotation Processor To Understand Parameterized Types Of Method Parameters
[英]Using Java reflection, how do I get parameterized types of parameters to a Method?
假設我有一個方法:
public void method(LinkedList<Integer> intList);
我使用反射來獲取此方法的java.lang.reflect.Method,並且我想獲取ParameterizedType,即。 LinkedList <整數>。
不幸的是,使用Method.getParameterTypes()我似乎只能得到非參數化的類Class <LinkedList>。
但是,在調試器中,如果我查看Method對象,我會發現有一個“簽名”字段,該字段似乎包含通用信息:
(Ljava/util/LinkedList<Ljava/lang/Integer;>;)V
那么如何從Method對象獲取LinkedList參數化類型?
使用Method.getGenericParameterTypes
。 樣例代碼:
import java.lang.reflect.*;
import java.util.*;
public class Test {
public void foo(LinkedList<Integer> intList) {
}
public static void main(String[] args) throws Exception {
Method method = Test.class.getMethod("foo", LinkedList.class);
Type[] parameters = method.getGenericParameterTypes();
System.out.println(parameters[0]);
}
}
輸出:
java.util.LinkedList<java.lang.Integer>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.