Tôi rất mới với ngôn ngữ lập trình Java nên đây có lẽ là câu hỏi ngớ ngẩn nhưng tôi phải hỏi nó vì tôi không thể tự mình tìm ra nó. Đây là thỏa thuận.Cách tạo phương thức có chữ ký là Danh sách
Tôi muốn tạo phương thức trích xuất loại đối tượng nhất định từ danh sách. Vì vậy, phương thức này sẽ nhận được danh sách là đối số, có nghĩa là danh sách phải chứa cả Object1 hoặc Object2. Tôi đã cố gắng như thế này:
public Object1 extractObject(List<Object>){
//some pseudo-code
... loop trough list and check if list item is instance of object one return that instance
}
Vấn đề với phương pháp khai báo với List<?>
như là đối số phương pháp là tôi nhận lỗi biên dịch từ nhật thực Syntax error on token ">", VariableDeclaratorId expected after this token
.
Làm cách nào để đặt chữ ký phương thức đúng cách để chấp nhận loại đối tượng hoặc Object1 hoặc Object2? Cảm ơn bạn
Đây là Mã của tôi:
protected Object1 getObject1(List<Object> list){
for(Object obj : list) {
if(obj instanceof Object1) {
return (Object1) obj;
}
}
return null;
}
Edit - sự khác biệt giữa các 2 là gì:
public Object1 getObject1(List<Object> list){
for(Object obj : list) {
if(obj instanceof Object1) {
return (Object1) obj;
}
}
return null;
}
public Object1 extractObject(List<Object> list, Class<Object1> type) {
for(Object obj : list) {
if(type.isInstance(obj)) {
return (Object1)obj;
}
}
return null; // no match found
}
chụp hình này là: D – London
là ok với tính năng đúc bổ sung, nó sẽ không biên dịch theo cách khác – London
@London, bình thường là bạn cần Truyền, bạn không vượt qua loại Lớp Danh sách của bạn. –