Câu hỏi thiết kế đơn giản.Tại sao toBinaryString không phải là một phương thức thể hiện trong lớp Integer?
Mẫu mã:
Integer int1 = new Integer(20);
System.out.println(Integer.toBinaryString(int1));
Tại sao JDK thiết kế không phải là một cái gì đó như sau? do đó, hàm toBinaryString trả về kết quả mong muốn là?
System.out.println(int1.toBinaryString());
Bên cạnh cho khả năng sử dụng rộng của một hàm tĩnh, các lý do khác cho cách tiếp cận thiết kế này là gì? Họ có sử dụng bất kỳ mẫu thiết kế cụ thể nào không? Nếu đó là sau đó, mà mô hình?
Để tránh * rõ ràng * tạo đối tượng không cần thiết, phải không? Tự động hóa sẽ kết thúc tạo ra bytecode cơ bản giống nhau trong cả hai trường hợp.(Bây giờ, Hotspot có thể bỏ qua việc tạo đối tượng hoàn toàn, nhưng lại có thể áp dụng cho cả hai trường hợp). Hay tôi đang thiếu một cái gì đó? –
@ jon-skeet cho phép chỉ nói loại 'int' không tồn tại. Vậy thì lý do đằng sau mẫu thiết kế này là gì? –
Andrzej: Không, sẽ không có bất kỳ autoboxing nào, vì tham số gõ nó 'int', không phải' Integer'. –