0 Câu hỏi: Đây có phải là một lỗi chung của trình biên dịch suy luận kiểu Java không? [bản sao]

câu hỏi được tạo ra tại Wed, May 8, 2019 12:00 AM
    

Câu hỏi này đã có câu trả lời tại đây:

    

Tôi đang suy nghĩ về suy luận kiểu bị ràng buộc tại trang gọi của hàm. Trong đoạn mã sau tôi gặp lỗi biên dịch cho cuộc gọi suy luận đầu tiên trong chức năng chính như mong đợi (String không phải là kiểu con của X vì vậy chúng tôi không thể suy ra loại này) lớp trừu tượng với một giao diện và làm điều tương tự mặc dù rõ ràng String không phải là một kiểu con của Y. Đây phải là một lỗi biên dịch phải không? (Tôi đã thử với jdk 1.8.121 + 1.8.161).

public class Why
{
    static abstract class X
    {
    }

    static <Z extends X> Z infer1()
    {
        return null;
    }

    static interface Y
    {
    }

    static <Z extends Y> Z infer2()
    {
        return null;
    }

    public static void main(String[] args)
    {
        String x = infer1();
        String y = infer2();
    }
}
    
2
0 Câu trả lời                              0                         
nguồn đặt đây