2014-07-11 18 views
5

Java 8 cung cấp một số giao diện chức năng trong gói java.util.function.Tại sao java.util.function không định nghĩa các giao diện chức năng chuyên biệt cho tất cả các kiểu nguyên thủy?

Đối với mỗi chức năng cơ bản (Chức năng, Người tiêu dùng, Nhà cung cấp, Nhà cung cấp ...), có một số khác được xác định khi tham số kiểu dành riêng cho loại nguyên thủy sau: double, int, long.

câu hỏi này là về động lực của giao diện như: Why are there primitive functions like DoubleFunction in Java 8

Nhưng tại sao không phải tất cả các loại nguyên thủy được bảo hiểm (ví dụ float là mất tích)?

Trả lời

9

Điều này đã được quyết định để ngăn chặn sự bùng nổ kích thước API. Việc buộc phải giới thiệu các chuyên ngành nguyên thủy ở tất cả đã là điểm đau, vì vậy thỏa hiệp chỉ chuyên về các loại thiết yếu, là longdouble và thêm int làm loại nguyên thủy nổi bật nhất: loại chỉ số mảng và số nguyên chữ. Tất cả các loại khác có thể được quảng cáo cho các loại này.

Trong this post trên danh sách gửi thư lambda-dev bạn có thể đọc tuyên bố chính thức từ Brian Goetz.

Các vấn đề liên quan