Tôi có một lớp đơn giản như dưới đây, nhưng tôi có một câu hỏi về việc sử dụng Generics để trả về một giá trị.Làm thế nào để trả về một số bằng cách sử dụng Generics trong Java?
import java.util.ArrayList;
public class Box<T extends Number> {
private ArrayList<T> list;
public Box(){
list = new ArrayList<T>();
}
public T get(int i){
if(i <list.size())
return list.get(i);
else
return 0; // Problem
}
}
tôi phải nhận được 0 (hoặc 0.0 - nó phụ thuộc vào giá trị của T) khi tôi < list.size() không phải là rỗng. Làm thế nào tôi có thể mã này đúng cách để làm điều đó?
Trả lại 'null' thay vào đó, 0 không phải là đối tượng. –
Vấn đề là mặc dù bạn đã viết "return 0", java cần trả về một thể hiện của lớp T, mà không được biết tại thời gian biên dịch. –