Một trong các kiểm tra Checkstyle tích hợp là RequireThis, sẽ tắt bất cứ khi nào bạn không thêm this.
vào trường địa phương hoặc lời gọi phương thức. Ví dụ:Nếu yêu cầu kiểm tra này trong Checkstyle được kích hoạt?
public final class ExampleClass {
public String getMeSomething() {
return "Something";
}
public String getMeSomethingElse() {
//will violate Checkstyle; should be this.getMeSomething()
return getMeSomething() + " else";
}
}
Tôi đang vật lộn với việc kiểm tra này có được biện minh hay không. Trong ví dụ trên, số ExampleClass
là số cuối cùng, cần bảo đảm rằng phiên bản "phải" của getMeSomething
sẽ được gọi. Ngoài ra, có vẻ như là trường hợp bạn có thể muốn các lớp con ghi đè hành vi mặc định, trong trường hợp này yêu cầu "này" là hành vi sai.
Cuối cùng, có vẻ như hành vi mã hóa quá phòng thủ chỉ làm lộn xộn nguồn và làm cho việc xem thực sự là gì đang diễn ra trở nên khó khăn hơn.
Vì vậy, trước khi tôi đề nghị kiến trúc sư của tôi rằng đây là một kiểm tra xấu để kích hoạt, tôi tự hỏi nếu bất cứ ai khác đã kích hoạt kiểm tra này? Bạn có gặp phải lỗi nghiêm trọng do thiếu this
không?
Câu hỏi liên quan cho C#: http://stackoverflow.com/questions/1562540/why-does-stylecop-recommend-prefixing-method-or-property-calls-with-this –