Dự án của chúng tôi chứa một số lớp mà chúng ta có phương thức equals() và hashCode() được tạo bởi Eclipse (Right Click -> Source -> Generate hashCode() và equals()).Làm cách nào để tôi có thể lấy kiểu kiểm tra để bỏ qua phương thức equals() và hashcode() được tạo ra bởi nhật thực?
Ví dụ:
@Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; final MyTO other = (MyTO) obj; if (num != other.num) return false; if (name == null) { if (other.name != null) return false; } else if (!name.equals(other.name)) return false; if (table == null) { if (other.table != null) return false; } else if (!table.equals(other.table)) return false; return true; }
Những phương pháp mà làm việc tốt cho các ứng dụng của chúng tôi, nhưng tiếc là không vượt qua kiểm tra phức tạp cyclomatic của chúng tôi với Checkstyle. Vì các phương thức này được tạo tự động, chúng tôi không quan tâm đến độ phức tạp của chúng. Chúng tôi có thể ngăn chặn toàn bộ lớp học từ Checkstyle, nhưng chúng tôi muốn có thể loại trừ chỉ hai phương pháp này.
Có ai biết cách tạo quy tắc tùy chỉnh trong Checkstyle cho phép chúng tôi loại trừ các phương thức equals() và hashCode() được tạo theo bất kỳ cách nào mà không loại trừ toàn bộ lớp không?
Tôi không quen thuộc với Trình gỡ rối. Làm thế nào tôi có thể xác định những con số dòng để loại trừ cho mỗi tập tin dựa trên, nói, tên phương pháp? – Brent
Trông giống như ['SuppressionCommentFilter'] (http://checkstyle.sourceforge.net/config.html#SuppressionCommentFilter) (từ cùng một liên kết) là những gì cần thiết. Nó thậm chí còn bao gồm một ví dụ về việc loại bỏ mã được tạo ra. – matt
Yup matt, i confused'em :). Đã chỉnh sửa trong câu trả lời. Ty – mgv