Có thể (hoặc thậm chí được khuyến nghị) để đúc phần tử được lấy từ một cho mỗi câu lệnh trong chính câu lệnh đó không? Tôi biết rằng mỗi phần tử trong danh sách sẽ thuộc loại <SubType>
.Phần tử truyền trong Java Đối với mỗi câu lệnh
tức là .:
List<BaseType> list = DAO.getList();
for(<SubType> element : list){
// Cannot convert from element type <BaseType> to <SubType>
...
}
hơn:
List <BaseType> list = DAO.getList();
for(<BaseType> el : list){
<SubType> element = (<SubType>)el;
...
}
+1 để nêu rõ cơ chế hợp đồng mà giao diện phải tuân thủ. – aperkins
Thật không may mã DAO không phải là của chúng tôi. Tuy nhiên, nguồn cấp dữ liệu vào nguồn dữ liệu là. Chúng tôi phân lớp (chỉ có phân lớp đó) vì chúng tôi muốn có thêm chức năng trong lớp. Vì chúng tôi kiểm soát đầu vào và chúng tôi chỉ đặt các đối tượng trong đó tôi cảm thấy tôi có thể khá chắc chắn rằng đối tượng đã truy xuất sẽ thực sự là một trong số . Nếu chúng tôi kiểm soát tất cả mã, bạn sẽ chính xác 100%. –
@Carl - có đáng để gói DAO sau đó không và cung cấp giao diện * khác * để thực hiện những gì bạn muốn. Nếu không, bạn sẽ phải chuyển đổi tất cả trên cơ sở mã của bạn (có khả năng - tôi nhận ra tôi đang đưa ra giả định về cách phân phối rộng rãi này) –