Tại sao một khai báo sẽ nhận vào kiểu A nhưng khi truyển kiểu B vào vẫn chạy?

em có 1 class Catalog và một hàm loadListProductByCatalog( Catalog c)
và một hàm để lấy possition của item của Spinner trong android

@Override 
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
loadListProductByCatalog(arraySpinner.get(arg2)); 
}

vần đề ở đây là tham số c có kiểu là Catalog( là một đối tượng) nhưng tại sao lại truyền vào nó một arraySpinner.get( arg2) . nó trả về vị trí thì là kiểu int sao truyền vao dc vậy

Bạn gửi lên khai báo arraySpinner.get xem?

Đoán arraySpinner là một arraylist các object có kiểu Catalog…và arraySpinner.get( arg2) là trả về 1 object thứ arg2

Code đầy dủ nó ở đây ạ

đúng là nó khai báo kiểu ArrayList arraySpinner nhưng nó trả về 1 object thứ arg2 là sao ạ vì tham số arg2 kiểu int và trả về vị trí của item trong spinner mà

arraySpinner là ArrayList,

ArrayList<Catalog> arraySpinner=new ArrayList<Catalog>();

ArrayList.get trả về kiểu dữ liệu của ArrayList được khai báo ban đầu, tức là Catalog

Link: http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#get(int)

ArrayList.get nhận vào kiểu int, nhưng trả ra Catalog

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?