Tôi có một lớp cơ sở được gọi là Yếu tố. Một số lớp khác (như Label và Image) đều mở rộng lớp này.Các phương pháp được tải quá mức ưu tiên
bây giờ tôi có một lớp điều phối có các phương pháp sau:
public class Dispatcher {
public static AbstractPropertyEditor<Label> createEditor(Label e) {
...
}
public static AbstractPropertyEditor<Element> createEditor(Element e) {
...
}
}
Nếu bây giờ tôi có một thể hiện của Label (kéo dài Element) và tôi muốn vượt qua nó để createEditor()
, tại sao là phương pháp chung nhất (cái thứ hai) được gọi là? Nó sẽ không được bình thường rằng phương pháp cụ thể nhất (createEditor(Label e)
) được gọi là?
tôi hoàn toàn cần các phương pháp với Element-param để "bắt" tất cả những lớp học a) thực hiện phần tử nhưng không có phương pháp cụ thể của mình trong lớp dispatching này ..
Tôi đang sử dụng Java 6, làm thế nào để "sửa" này?
Chỉnh sửa: Được rồi, tôi phải thừa nhận nó hoàn toàn không phải về generics. Nhưng đó là nơi tôi gặp nó lần đầu tiên.
cảm ơn và liên quan
Bạn có thể hiện được gán cho một biến kiểu 'Label' không phải' Element'? –
(và không phải 'T mở rộng Element' trong đó' T' xảy ra là 'Nhãn'?) –