Tôi đang gặp vấn đề khi nắm bắt một thứ gì đó - tôi có thể sắp sửa hoàn toàn sai.Mở rộng ArrayList và tạo các phương thức mới
Tôi cố gắng để tạo ra một lớp mà kéo dài ArrayList nhưng có một số phương pháp làm tăng chức năng (ít nhất là trong chương trình tôi đang phát triển.)
Một trong những phương pháp là một findById (int id), trong đó tìm kiếm từng đối tượng ArrayList cho một đối sánh id cụ thể. Cho đến giờ nó hoạt động, nhưng nó sẽ không cho phép tôi làm for (Item i : this) { i.getId(); }
Tôi không hiểu tại sao?
Full mã:
public class CustomArrayList<Item> extends ArrayList<Item> {
// declare singleton instance
protected static CustomArrayList instance;
// private constructor
private CustomArrayList(){
// do nothing
}
// get instance of class - singleton
public static CustomArrayList getInstance(){
if (instance == null){
instance = new CustomArrayList();
}
return instance;
}
public Item findById(int id){
Item item = null;
for (Item i : this) {
if (i.getId() == id) {
// something
}
}
return item;
}
public void printList(){
String print = "";
for (Item i : this) {
print += i.toString() + "\n";
}
System.out.println(print);
}
}
Tuyệt vời. Đó có phải là cú pháp thích hợp không, hay tôi đang cố gắng làm điều gì đó khác? Cảm ơn bạn rất nhiều! Trả lời nhanh. – Cody
Đó có thể là cú pháp thích hợp cho kịch bản của bạn. Đã cập nhật câu trả lời để giải thích lý do. – aioobe
Cảm ơn bạn! Điều đó giải thích nó rất tốt. – Cody