[英]Java dynamic function calling
我有一個字符串數組,其中包含yyyyyy
類中的方法名稱
在xxxxxx
類中,我正在制作一個yyyyyy
實例(比如obj
)。 現在我可以調用obj.function_name()
,但我想在循環中從 String 數組中讀取function_name
。 這可能嗎?
可以使用反射,但如果您需要這種行為,您可能應該對您的設計有所質疑。 Class.getMethod
接受一個String
作為方法名稱並返回一個Method
對象,然后您可以調用.invoke
來調用該方法
這些 Javadoc 頁面應該會有所幫助:
示例代碼(假設yyyyyy
方法采用一個int
參數,只是為了顯示參數傳遞):
yyyyyy obj = new yyyyyy();
String[] methodNames = {"foo", "bar", "baz"};
for(String methodName : methodNames) {
Method method = Class.forName("yyyyyy").getMethod(methodName, new Class[] {int.class});
method.invoke(obj, 4); // 4 is the argument to pass to the method
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.