Tôi đang gặp khó khăn trong việc phân loại lý do tại sao các biểu thức lambda được gán cho một số giao diện chức năng, nhưng không thể gán cho các giao diện khác. Một ví dụ, sử dụng một số giao diện chức năng từ Metrics library:Giao diện chức năng trong Java 8
Gauge<Double> foo =() -> { return null; };
RatioGauge bar =() -> { return null; };
Những tuyên bố thứ hai có một lỗi biên dịch (trong Eclipse):
Các loại mục tiêu của biểu thức này phải là một giao diện chức năng
Theo như tôi có thể biết, RatioGauge is a functional interface. Tui bỏ lỡ điều gì vậy?
Chức năng ** Giao diện **? –
Tóm tắt ** lớp ** không phải là giao diện ** chức năng **. – m0skit0