初學 Android 時繼承 BaseAdapter 發現 getItemId(int arg0) 參數名非 position,感到困惑是否需手動修改?本文說明參數名本質、IDE 自動生成差異與現代開發建議。
Java 方法簽名僅由方法名、參數型別、參數順序決定,參數名稱(arg0 vs position)僅存在於原始碼與區域變數表,編譯後的字節碼完全一致,不影響執行行為。
arg0?arg0, arg1... 佔位符。-parameters 編譯選項,Java 8+ 支援)。Android Studio (IntelliJ 平台) 智慧生成覆寫方法時,會從介面定義或父類別提取有語意的參數名:
// ListAdapter 介面定義
long getItemId(int position);
// AS 生成
@Override
public long getItemId(int position) { // 直接是 position
return position;
}
ListView + BaseAdapter 為舊世代 API,RecyclerView 效能更好、架構更清晰(強制 ViewHolder、項目動畫、佈局管理分離)。Alt+Shift+R 重構重命名),無副作用。developer.android.com/studio)。File > New > Import Project 選擇 Eclipse 專案根目錄(含 .project、.classpath),AS 自動轉換為 Gradle 專案。build.gradle 依賴版本、compileSdk、targetSdk。別在參數命名上浪費時間,升級工具鏈、採用現代架構才是提升開發效率的正道。