當前位置:編程學習大全網 - 源碼下載 - java 中 invoke()的作用是什麽?

java 中 invoke()的作用是什麽?

invoke(調用)就是調用Method類代表的方法。可以實現動態調用,例如可以動態的傳人參數,可以把方法參數化。

可以把方法參數化invoke(class, method),比如Test類裏有壹系列名字相似的方法setValue1、setValue2等等,可以把方法名存進數組v[],然後循環裏invoke(test,v[i]),就順序調用了全部setValue。

此外,invoke()對帶有指定參數的指定對象調用,個別參數被自動解包,與基本形參相匹配,基本參數和引用參數都隨需服從方法調用轉換。如下

public Object invoke(Object obj,Object... args)

throws IllegalAccessException,

IllegalArgumentException,

InvocationTargetException

如果底層方法是靜態的,那麽可以忽略指定的?obj?參數。該參數可以為 null。

如果底層方法所需的形參數為 0,則所提供的?args?數組長度可以為 0 或 null。

如果底層方法是實例方法,則使用動態方法查找來調用它,這壹點記錄在 Java Language Specification, Second Edition 的第 15.12.4.4 節中;在發生基於目標對象的運行時類型的重寫時更應該這樣做。

如果底層方法是靜態的,並且尚未初始化聲明此方法的類,則會將其初始化。

如果方法正常完成,則將該方法返回的值返回給調用者;如果該值為基本類型,則首先適當地將其包裝在對象中。但是,如果該值的類型為壹組基本類型,則數組元素不?被包裝在對象中;換句話說,將返回基本類型的數組。如果底層方法返回類型為 void,則該調用返回 null。

擴展資料:

語言特點

1.簡單性

Java看起來設計得很像C++,但是為了使語言小和容易熟悉,設計者們把C++語言中許多可用的特征去掉了,這些特征是壹般程序員很少使用的。例如,Java不支持go to語句,代之以提供break和continue語句以及異常處理。

2.分布性

Java設計成支持在網絡上應用,它是分布式語言。Java既支持各種層次的網絡連接,又以Socket類支持可靠的流(stream)網絡連接,所以用戶可以產生分布式的客戶機和服務器。

網絡變成軟件應用的分布運載工具。Java程序只要編寫壹次,就可到處運行。

3.編譯和解釋性

Java編譯程序生成字節碼(byte-code),而不是通常的機器碼。Java字節碼提供對體系結構中性的目標文件格式,代碼設計成可有效地傳送程序到多個平臺。Java程序可以在任何實現了Java解釋程序和運行系統(run-time system)的系統上運行。

oracle官網——Class Method(?invoke()見底部)

  • 上一篇:命運冠位指定FGO暴擊權重是什麽
  • 下一篇:在線視頻人像摳圖-如何把視頻人物摳出來換背景
  • copyright 2024編程學習大全網