2013-03-12 31 views
5

Chỉ cần một câu hỏi nhanh về biểu mẫu.Java - tôi có nên sử dụng hằng số cho thông điệp tường trình không?

Tôi đang ghi nhật ký các thông báo lỗi khác nhau và tự hỏi mình có nên tạo chuỗi mới cho thư trong cuộc gọi nhật ký hay tạo chuỗi không đổi trong giao diện mà tôi đang sử dụng để lưu trữ các chuỗi khác không. . Tôi đã sử dụng một mã phân tích mã và nó ám chỉ đến thứ hai nói rằng đó là thực hành tốt hơn để tạo ra một chuỗi liên tục và tham chiếu nó, ngay cả khi nó chuỗi chỉ được sử dụng một lần. Tôi chỉ tự hỏi nếu điều này thực sự là trường hợp?

Cảm ơn trước

+0

Đây là câu hỏi kiểu thảo luận và có thể sẽ bị đóng. Nhưng tôi không thể chống lại sự đóng góp: không làm gì cả. Các thông điệp tường trình thuộc về một tệp thuộc tính, được tham chiếu bởi một khóa không đổi, để chúng có thể được dịch sang các ngôn ngữ khác nếu cần thiết. –

+3

@ ErnestFriedman-Hill: Thông điệp tường trình là công cụ gỡ lỗi thời gian chạy và không phải là thứ mà người dùng sẽ thấy :-) –

+0

Nếu mã của bạn đi vào tệp jar được một số bên thứ ba sử dụng, bạn có thể đặt cược được bản địa hoá! –

Trả lời

3

Tôi không chắc bạn đang sử dụng công cụ phân tích nào hoặc cách bạn định cấu hình nhưng lời khuyên có vẻ không hợp lệ đối với tôi. Trình biên dịch Java sẽ tạo các hằng số chuỗi cho bạn (nó thường sẽ không cấp phát một thể hiện String mới khi mã gọi phương thức log), vậy điều gì sẽ là điểm để làm công việc này theo cách thủ công?

Nếu bạn đặt hằng số chuỗi vào một giao diện, bạn có thể chia sẻ chúng giữa các lớp nhưng không theo cách bạn nghĩ: Trình biên dịch Java sẽ sao chép giá trị của hằng số vào mã mà nó đang được sử dụng. mã sẽ không có tham chiếu đến giao diện nữa!)

Đề xuất của tôi: Tắt cảnh báo gây hiểu lầm này.

+0

Cảm ơn tôi sau! Vui lòng kiểm tra: https://stackoverflow.com/questions/446663/best-way-to-define-error-codes-strings-in-java –

2

Việc ghi nhật ký phải dễ dàng thêm và xóa; chỉ cần cung cấp một lớp rất mỏng. Và sau đó có thể có MessageFormats được sử dụng, đó là lỗi dễ bị/uncheckable khi thay thế bằng một tên liên tục.

Chuỗi hằng số cũng được nhập và sau đó các thay đổi không cần phải được phát hiện nữa, khi hằng số thay đổi.

Chuỗi đăng nhập cũng không phải là rất nghiêm ngặt, mang tính thông tin.

Tốt hơn để đánh dấu các chuỗi đó là không thể quốc tế hóa.

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