首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android 理解 Bundle beanMsg = getIntent().getExtras() 鏈式呼叫機制

     編輯:程式設計綜合問答

程式碼解析

Bundle beanMsg = getIntent().getExtras();

逐步拆解

  1. getIntent():Activity 繼承自 `Context`,此方法回傳啟動該 Activity 的 `Intent` 物件。
  2. .getExtras():`Intent` 類別的實例方法,回傳攜帶的 `Bundle` 物件(若無則回傳 `null`)。
  3. 鏈式呼叫:`getIntent()` 回傳物件後,直接對該物件呼叫 `getExtras()`,無需中間變數。

等價展開寫法

Intent intent = getIntent();      // 取得 Intent
Bundle beanMsg = intent.getExtras(); // 取得 Bundle

為何沒有方法體?

這是方法呼叫而非方法定義。`getIntent()` 與 `getExtras()` 均為框架已實作的方法,開發者直接使用其回傳值。

進階用法:安全取值

Bundle extras = getIntent().getExtras();
if (extras != null) {
    String name = extras.getString("key_name", "預設值");
    int age = extras.getInt("key_age", -1);
    // 避免 NullPointerException
}

常見誤區

  • 以為 `getIntent()` 每次呼叫都會建立新物件 → 實際回傳同一個 Intent 實例。
  • 忽略 `getExtras()` 可能回傳 `null` → 直接呼叫 `getString` 會崩潰。

總結

鏈式呼叫 `getIntent().getExtras()` 只是語法糖,本質是「取得 Intent → 取得其附加資料 Bundle」。理解物件回傳與方法鏈結,有助於閱讀 Android 官方範例碼。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved