RequireThis 背后的动机是什么?

What is the motivation behind RequireThis?

Checkstyle warns about RequireThis

就我个人而言,我发现它更具可读性(尤其是当不是从 IDE 而是从代码审查工具阅读时),但是除了可读性之外还有其他原因需要进行此检查吗?

考虑以下几点:

int b,c;

public MyConstructor(int a, int b){
  b = a;
  c = b;
}

这是合法的。它编译。它可能不会做你想要的。添加 this 可确保您不会不小心遮盖了您不想要的内容。

这只是一些有利有弊的惯例。

如果您不使用 IDE,此检查最有用。它可能有助于代码审查来消除代码引用的歧义、提高可读性并防止与局部变量或参数访问混淆。

另一方面,大多数编码风格不建议在任何地方使用 this,因为这可能被认为是不必要的、多余的和过于冗长的。