2009-01-21 28 views
6

Tôi có phương thức nhận đối số String.Trong một số trường hợp, tôi muốn chuyển giá trị int vào phương thức đó.Để gọi phương thức tôi muốn chuyển đổi int thành String.For mà tôi đang thực hiệnChuyển đổi chuỗi

aMethod(""+100); 
sau tùy chọn

Một hơn là

aMethod(String.valueOf(100)); 

Cả hai đều correct.I không biết đó là thích hợp? mà cho hiệu suất tốt hơn?

Chủ yếu điều này xảy ra trong GWT.In GWT để đặt kích thước bảng và tiện ích con tôi muốn thực hiện việc này.

Có ai có thể đưa ra đề xuất không?

Trả lời

2

Vì bạn chủ yếu sử dụng nó trong GWT, tôi sẽ sử dụng phương pháp "" +, vì đây là cách tìm kiếm gọn gàng nhất và cuối cùng sẽ chuyển sang javascript, nơi không có thứ gì như StringBuilder.

Xin đừng làm tổn thương tôi Skeet Fanboys;)

4

Sử dụng + trên chuỗi tạo nhiều trường hợp chuỗi, do đó, sử dụng valueOf có thể có hiệu suất cao hơn một chút.

+0

và như bài viết Jon Skeet chỉ ra, valueOf (foo) bảo vệ bạn trong bất kỳ refactoring tương lai nên loại của nguyên thủy cần phải được thay đổi ... Integer.toString (foo) không cung cấp sự bảo vệ này. –

11

Tốt bài viết bởi Jon Skeet về chủ đề của câu hỏi của bạn: String conversions - the Good, the Okay-I-Suppose, and the Utterly Horrible

+0

Và tôi ở đây tôi đã giả định không ai đọc một, nó quá cũ ... nhưng tôi vẫn đồng ý với nó :) –

+0

Wow liên kết tốt, cảm ơn :) –

+0

Cảm ơn rất nhiều Jon Skeet cho Điều tốt. – DonX

1

Thông thường bạn muốn sử dụng Integer.toString (int) hoặc String.valueOf (int). Cả hai đều trả về cùng một thứ, và có thể có các cách triển khai giống hệt nhau. Integer.toString (int) dễ đọc hơn một chút, IMO.

0

Tôi giả định rằng đây:

aMethod(""+100); 

biến thành này bởi trình biên dịch:

aMethod(new StringBuilder("").append(String.valueOf(100)).toString()); 

Vì vậy, các tùy chọn gọi String.valueOf trực tiếp có lẽ là lựa chọn tốt hơn. Bạn luôn có thể biên dịch chúng và so sánh bytecode để xem chắc chắn.

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