亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java Method類及invoke方法的用法

發布時間:2020-08-01 09:43:28 來源:億速云 閱讀:725 作者:小豬 欄目:開發技術

這篇文章主要講解了Java Method類及invoke方法的用法,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

在說Method和invoke的使用之前我們來看一個小例子, 如果看懂了那就ok了

public class MethodInvoke {
 
 class Animal {
  public void print() {
   System.out.println("Animal.print()");
  }
 }

 class Cat extends Animal {

  @Override
  public void print() {
   System.out.println("Cat.print()");
  }
 }
 
	public static void main(String[] args) throws Exception {
		Method animalMethod = Animal.class.getDeclaredMethod("print");
		Method catMethod = Cat.class.getDeclaredMethod("print");
		
		Animal animal = new Animal();
		Cat cat = new Cat();
		animalMethod.invoke(cat); //相當于 cat調用父類的print方法
		animalMethod.invoke(animal);//相當于 animal.print();
		
		catMethod.invoke(cat); //相當于 cat.print();
		catMethod.invoke(animal);
	}
	
}

執行結果如下

Cat.print()
Animal.print()
Cat.print()
Exception in thread "main" java.lang.IllegalArgumentException: object is not an instance of declaring class
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

代碼中,Cat類覆蓋了父類Animal的print()方法, 然后通過反射分別獲取print()的Method對象。最后分別用Cat和Animal的實例對象去執行print()方法。其中animalMethod.invoke(animal)和catMethod.invoke(cat),示例對象的真實類型和Method的聲明Classs是相同的,按照預期打印結果;animalMethod.invoke(cat)中,由于Cat是Animal的子類,按照多態的特性,子類調用父類的的方法,方法執行時會動態鏈接到子類的實現方法上。

因此,這里會調用Cat.print()方法;而catMethod.invoke(animal)中,傳入的參數類型Animal是父類,卻期望調用子類Cat的方法,因此這一次會拋出異常。

看完上述內容,是不是對Java Method類及invoke方法的用法有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鲁甸县| 勃利县| 望都县| 灵武市| 克东县| 西平县| 铜川市| 金堂县| 定兴县| 南城县| SHOW| 昭通市| 东乌珠穆沁旗| 香河县| 阿鲁科尔沁旗| 丹棱县| 武城县| 陇川县| 新龙县| 云梦县| 吉林省| 绥江县| 嘉义市| 承德市| 武陟县| 肇源县| 拉孜县| 二连浩特市| 内黄县| 宜昌市| 肥乡县| 金寨县| 墨玉县| 卢龙县| 张家口市| 确山县| 曲阳县| 阿坝| 黑龙江省| 琼结县| 叙永县|