Đây là một trong những quy tắc từ Googles tĩnh phân tích CodePro AnalytiX:Mảng không được khởi tạo tĩnh bởi bộ khởi tạo mảng. Tại sao?
Tóm tắt
Mảng không nên tĩnh khởi tạo bởi một initializer mảng.
Mô tả
kiểm toán này kiểm tra quy tắc cho biến mảng được khởi tạo (hoặc trong initializer hoặc trong một câu lệnh gán) sử dụng một initializer mảng.
Ví dụ
Việc kê khai mảng sau đây sẽ được gắn cờ vì việc sử dụng một initializer mảng:
int[] values = {0, 1, 2};
Bây giờ, tôi có thể vô hiệu hóa nó nếu tôi không thích nó, đó không phải là vấn đề. Nhưng tôi tự hỏi tại sao đây lại là một vấn đề, và giải pháp nào để giữ cho mã đó không bị kiểm soát bởi quy tắc kiểm toán?
Dường như có một loạt quy tắc được xác định trước chỉ là vấn đề về hương vị để bạn có thể định cấu hình dễ dàng. Bằng cách xem [danh sách này] (https://developers.google.com/java-dev-tools/codepro/doc/features/audit/audit_rules_com.instantiations.assist.eclipse.auditGroup.codingStyle) Tôi tìm thấy rất nhiều quy tắc Tôi nhìn hoặc không có cơ sở hoặc thậm chí có vấn đề với tôi. – Holger
điều này có ý nghĩa –
Trình kiểm tra kiểm toán có khiếu nại nếu mảng đó là const không? Có lẽ họ không muốn các giá trị có thể được sửa đổi sau đó đi vào bất cứ điều gì khác hơn là lưu trữ đống năng động, do khả năng tràn bộ đệm, dẫn đến lỗ hổng bảo mật. – Marty