2011-08-31 35 views
22

Đúc một đối tượng thành một đôi và nhận thấy cả hai phương pháp này. Tôi thấy rằng parseDouble đã có từ 1.2. Tại sao thêm phương thức này nếu nó về cơ bản có chức năng giống như valueOf (s)?Double.valueOf (s) so với Double.parseDouble

+0

xem xét điều này: http://stackoverflow.com/q/10577610/779408 – breceivemail

Trả lời

31

parseDouble() trả về giá trị double nguyên thủy. valueOf() trả về một thể hiện của lớp bao bọc Double. Trước khi Java 5 giới thiệu autoboxing, đó là một sự khác biệt rất đáng kể (và nhiều người cho rằng nó vẫn là).

+0

Tôi vừa phát hiện ra sự khác biệt thông qua một số quá tải. Bây giờ tìm kiếm autoboxing – Will

+4

@Will: bây giờ tôi cảm thấy cũ ... –

10

Vì nó không giống nhau. valueOf() tạo đối tượng Double thường không cần thiết. parseDouble() thì không. Với autoboxing nó là valueOf(String) mà không còn cần thiết, nhưng do đó khả năng tương thích ngược.

4

Nếu bạn chỉ cần sử dụng giá trị (nguyên thủy) parseDouble(String s) thì chi phí sẽ ít hơn. valueOf(String s) trả về một lớp Đôi bao bọc giá trị kép nguyên thủy.

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