Tôi có một số rắc rối với phương thức có tham số Danh sách đã nhập, được kế thừa từ lớp khác (đã nhập).Phương pháp với danh sách đã nhập và thừa kế
Hãy giữ nó đơn giản:
public class B<T> {
public void test(List<Integer> i) {
}
}
Lớp B có T vô ích chung, và thử nghiệm() muốn có một Danh sách Integer.
Bây giờ nếu tôi làm:
public class A extends B {
// don't compile
@Override
public void test(List<Integer> i) {
}
}
tôi nhận được một "Các thử nghiệm phương pháp (danh sách) loại A phải ghi đè lên hoặc thực hiện một phương pháp siêu kiểu" lỗi, đó không nên xảy ra.
Nhưng loại bỏ loại danh sách hoạt động ... mặc dù nó không phụ thuộc vào lớp chung chung.
public class A extends B {
// compile
@Override
public void test(List i) {
Và cũng định chung vô dụng dưới đây để sử dụng danh sách gõ
public class A extends B<String> {
// compile
@Override
public void test(List<Integer> i) {
Vì vậy, tôi tránh khỏi thất bại, sự chung của B nên không có ảnh hưởng vào loại bài kiểm tra() danh sách. Có ai có ý tưởng về những gì đang xảy ra không?
Cảm ơn
Tôi tin câu trả lời của bạn nằm ở đây [http://stackoverflow.com/a/502770/248082). – nobeh
Thông thường [capital V] 'Void' được sử dụng cho các tham số chung mà bạn không muốn sử dụng. Ví dụ, sử dụng 'java.security.PreivilegedAction' mà không trả về một giá trị (trả về' null' - đó là tham chiếu 'Void' hợp lệ duy nhất). –