2011-11-30 27 views
7

Nhiều công cụ kiểm tra mã nguồn chuẩn (PMD, FindBugs, Checkstyles) đều thực hiện quy tắc "Chuỗi bình đẳng", khi sử dụng == (hoặc !=) khi so sánh chuỗi có thể được phát hiện và báo cáo là một lỗi.Kiểm tra các tệp Java cho == Lỗi, không giới hạn ở các chuỗi

Tôi đang tìm cách viết (hoặc định cấu hình!) Một quy tắc tương tự hoạt động trên một tập hợp các loại đối tượng khác trong API của tôi.

//Want to detect things like: 
Instance a = ...; 
Instance b = ...; 
if (a == b) //Error here, not using a.equals(b) 

Nhìn vào PMD & FindBugs không có cách nào rõ ràng (hoặc dễ dàng) để làm điều này, có ai đi qua một cái gì đó như thế này?

Chúc mừng, Ro

+0

Cần lưu ý rằng việc sử dụng == với các đối tượng có thể là một điều hợp lý để làm. Khi bạn muốn biết nếu nó theo nghĩa đen là cùng một objecg được đề cập đến, không chỉ là một mà trông giống nhau –

Trả lời

2

Không CompareObjectsWithEquals trong PMD làm việc cho bạn?

+0

Không chính xác, mà quá nhiều ... Tôi cần phải cấu hình các quy tắc để chỉ xem xét một số lớp học. Nhưng cảm ơn !, đó là một điểm khởi đầu tuyệt vời. –

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