2016-01-12 15 views
6

Có thể kiểm tra với checkstyle nếu dự án java đang sử dụng tên đủ điều kiện trong mã không. Chúng tôi muốn ngăn chặn mã nhưCách ngăn chặn tên đầy đủ trong mã Java

if (org.apache.commons.lang3.StringUtils.isBlank(name)) { 
.... 
.... 
} 

và muốn thực thi các gói đó thay vào đó được nhập thay vào đó.

Có những công cụ nào khác có thể giúp chúng tôi thực hiện được không?

+4

Bạn mong đợi điều gì từ công cụ nếu có xung đột tên lớp? – varevarao

+0

Bạn có thể kiểm tra bằng quy tắc nhập kiểm soát. Sau đó, cấu hình plugin Maven Checkstyle để mọi vi phạm sẽ không cho phép xây dựng ...? – Codexer

+1

Câu hỏi thú vị. Nhưng bạn có chắc chắn muốn bật tính năng này không? Tôi đã cần phải sử dụng tên đủ điều kiện vào những thời điểm khi tôi xử lý mã kế thừa và ai đó đã sử dụng lớp * StringUtils' tùy chỉnh *. Cho rằng lớp 'không đầy đủ, tôi kết thúc bằng cách sử dụng Apache Commons 'StringUtils' trong lớp đó, trong khi việc nhập khẩu đã được sử dụng trên' StringUtils' tùy chỉnh, và do đó nhu cầu của tôi cho nó. – entpnerd

Trả lời

2

Theo như tôi biết, Checkstyle không thể thực hiện việc này. Tuy nhiên, có một quy tắc PMD được gọi là UnnecessaryFullyQualifiedName có thể đáng xem. Plugin IntelliJ cho PMD tồn tại, ví dụ: QAPlug PMD, miễn phí để tải xuống.

Hãy chuẩn bị sẵn sàng để xem nhiều mặt tích cực sai. Ví dụ: không thể tham chiếu hai lớp có cùng tên đơn giản mà không có tên lớp học đầy đủ (ví dụ: foo.Abar.A). Cũng có thể là PMD thực sự kiểm tra trường hợp này, nó có thể đáng để thử.

+0

Kiểm tra PMD chỉ cảnh báo nếu đã có dạng nhập của lớp (tôi nghĩ nó so sánh tên nhập và tên đủ điều kiện trong mã), vì vậy không có nhiều xác thực sai, nhưng nó sẽ không cảnh báo nếu lớp đủ điều kiện là không chưa được liệt kê trong hàng nhập khẩu. Một trường hợp tìm kiếm regex nhạy cảm với trường hợp như [az] + [.] [Az] + [.] [AZ] có thể giúp thu hút những người không nhập khẩu, nhưng điều này chắc chắn sẽ có những kết quả sai lệch :) – HairyFotr

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