Bạn có thể tránh sử dụng một khối initializer tĩnh hoàn toàn bằng cách sử dụng đoạn mã sau:
private static final ApiKey API_KEY = new ApiKey();
hoặc
private static final ApiKey API_KEY = createNewApiKey();
nếu API tạo chính đòi hỏi nhiều hơn chỉ là một cuộc gọi constructor. Điều đó làm cho mã dễ đọc hơn, IMHO. Nhưng nó không quan trọng lắm.
Các initializer tĩnh rất hữu ích khi hai lĩnh vực tĩnh phụ thuộc vào các mã khởi tạo cùng:
static {
// compute some values
A = somePartOfTheComputedValues();
B = someOtherPartOfTheComputedValues();
}
Nhưng thậm chí sau đó, A và B có thể có lẽ được refactored thành một đối tượng duy nhất, mà sẽ được tạo ra trong một đơn phương pháp.
Nguồn
2012-02-19 09:40:14
tôi sẽ bình luận vì không có "màu đen hoặc trắng" câu trả lời cho câu hỏi của bạn. Cá nhân, tôi không tìm thấy accessor tĩnh một người bạn tốt của các lập trình viên.Phụ thuộc tiêm là một thay thế rất tốt đẹp mà còn giúp rất nhiều khi nói về thử nghiệm. –
Tôi đã nhìn thấy một mã mà các chủ đề mới được bắt đầu trong khối tĩnh. :) Nó đã rất tệ. –