Tôi không chắc chắn đây có phải là một tuyên bố dứt khoát hay không, nhưng có vẻ như với tôi rằng Java API thích liên tục ints hơn enums. Từ các phần của API mà tôi đã sử dụng, tôi đã gặp phải nhiều hằng số final static int
trong đó một số enum
có thể đã được sử dụng thay thế. Khi ví dụ như vậy mà tôi tình cờ được nhìn chằm chằm vào thời điểm này:Tại sao thư viện Java sử dụng ints liên tục nhiều hơn enums?
Từ java.awt.BasicStroke:
public final static int CAP_BUTT = 0;
public final static int CAP_ROUND = 1;
public final static int CAP_SQUARE = 2;
Trong thực tế, tôi không nghĩ rằng tôi đã từng nhìn thấy một enum được sử dụng trong một lớp Java API tiêu chuẩn. Tại sao điều này?
Tôi đang thiết kế API cho ứng dụng của riêng mình (nhỏ hơn Java API khoảng một tỷ lần, nhưng tôi vẫn cố gắng thông minh) và cố gắng quyết định có sử dụng ints hoặc enums không. THIS bài tham khảo một cuốn sách rất phổ biến mà tôi chưa đọc mà ngụ ý enums có nhiều lợi thế. Hầu hết các câu trả lời được đánh giá cao khác trong cùng một chuỗi đó đều đồng ý. Vậy tại sao Java dường như không sử dụng khả năng enum của riêng mình?
Một dự đoán chỉ xuất hiện trong tâm trí của tôi ngay sau khi đăng. Có lẽ 'enum' không có sẵn trong Java một thời gian dài trước đây khi tất cả các lớp này được thiết kế? – The111
'BasicStroke' trước ngày' enum' đến Java 1.5. – Reimeus
Đó có thể là mã được viết trước khi ngôn ngữ có enums. Vì nó là một API công cộng nên không thể thay đổi được – James