Tôi có một chức năng lọc danh sách một số giá trị và nó sử dụng instanseof xây dựng:lớp như là đối số chức năng
public static List<View> getAllChildren(View v) {
/* ... */
if (v instanceof Button) {
resultList.add(v);
}
/* ... */
}
tôi muốn làm cho nó tổng quát hơn và thiết lập nút như chức năng tham số:
public static List<View> getAllChildren(View v, ? myClass) {
/* ... */
if (v instanceof myClass) {
resultList.add(v);
}
/* ... */
}
Nhưng tôi không biết làm thế nào để vượt qua myClass với chức năng. Xin vui lòng cho tôi biết làm thế nào tôi có thể khái quát hóa chức năng này?
Tôi cũng sẽ đề cập đến cách bạn nhận đối tượng 'Lớp >' (ví dụ: 'Button.class') –
@PaulBoddington Điểm tốt. Tôi sẽ chỉnh sửa điều đó. – gla3dr
Cũng đáng chú ý là 'myClass.isInstance (v)' sẽ trả về true nếu 'v' tương ứng với' myClass'. Nó không nhất thiết phải là cùng một lớp. Nếu bạn muốn kiểm tra xem đó có phải là cùng một lớp, thì bạn có thể làm 'myClass.equals (v.getClass())'. –