[英]How can I invoke a method without knowing the count of parameters using java.lang.reflect?
我閱讀了有關java.öang.reflect的教程,並找到了一種從類中獲取方法並使用給定參數調用它的方法,如下所示:
Method method = /*some initialization*/;
Object returnValue = method.invoke(null, "parameter-value1");
這將調用“ parameter-value1”作為唯一參數的靜態方法“ method”。
現在,它很整潔,但是不夠動態。 我想調用僅具有方法對象的方法,並插入未指定數量的參數。 假設我有Method method
和Object[] parameters
(將用作調用method
參數)。
是否可以編寫一個簡短而簡單的方法以通過使用反射調用具有給定參數的任何方法? 如果是這樣:如何歸檔?
不行,這是不可能的。 您可以使用給定的Object[]
作為參數來調用該方法。 但是對此有一些限制:
幸運的是,這兩個都是已知的,這要歸功於Method#getParameterTypes()
:
Class<?>[] parameterTypes = someMethod.getParameterTypes();
int parameterCount = parameterTypes.length;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.