各種ネーミングに関するルールセットです。
ループ変数以外で、短過ぎる(3文字未満)変数名を付けている箇所を検出します。
長過ぎる変数名を付けている箇所を検出します。
検出する変数名の最小長を指定します。
デフォルトは 17 です。
短過ぎる(3文字未満)メソッド名を付けている箇所を検出します。
規則に従っていない変数名を検出します。
static変数のプレフィックス(先頭に付ける文字)を指定します。
static変数のサフィックス(最後に付ける文字)を指定します。
非static変数のプレフィックス(先頭に付ける文字)を指定します。
非static変数のサフィックス(最後に付ける文字)を指定します。
規則に従っていないメソッド名を検出します。
先頭が小文字で始まり、アンダースコアを含まない名称である必要があります。
規則に従っていないクラス名を検出します。
先頭が大文字で始まる名称である必要があります。
規則に従っていないAbstractクラス名を検出します。
「Abstract」から始まる名称である必要があります。
変数/メソッド/クラス名に $ が含まれている箇所を検出します。
…いや、まぁ。普通、しないですよね(笑)。
Perl使いなら変数に使ったりしてしまうかもしれません。
クラス名と同名のメソッドを検出します。
public class Foo {
public void Foo() {} // 他のルールにも引っ掛かります
}
hashCode メソッドと見間違いやすいメソッド名を検出します。
int hashcode() {
// hashCode() の間違いである可能性が高い
}
定数と見間違いやすいフィールド名を検出します。
public void bar() {
double PI = 3.14; // これは定数ではなく変数。finalにするか、変数名を小文字にする
}
equals メソッドと見間違いやすいメソッド名検出します。
public boolean equals(String s) {
// これは Object.equals をオーバーロードしない、全く独自のメソッドと見なされる
}
クラス名と見間違いやすいフィールド名を検出します。
public class Foo {
private int foo; // 別の名前の方が良い
}
メソッド名と見間違いやすいフィールド名を検出します。
private int bar;
private void bar() {}
クラス名と同名の非コンストラクタメソッドを検出します。
MethodWithSameNameAsEnclosingClass と全く同じような気がしますが…
パッケージ記述のないクラスを検出します。
つまり、デフォルトパッケージを使わないようにするという事です。
フィールド以外の変数名に m_ で始まる名称が使われている箇所を検出します。
boolean型を返すGetterメソッド名をチェックします。
public boolean getFoo(); // NG。boolean型を返すメソッドはisXXXにする public boolean isFoo(); // OK public boolean getFoo(boolean bar); // 引数を持つ場合はOKとする。