minimize

Controversial

問題のありそうなロジックを検出するルールセットです。

UnnecessaryConstructor

不必要なコンストラクタ宣言を検出します。

public class Foo {
  public Foo() {}
}

NullAssignment

変数宣言文以外でのnull値の代入を検出します。

Object x = null; // これはOK
x = new Object();
x = null; // これはNG

一般的に、これは悪い形式のコーディングだとされています。
昔の記事にはよく、
「明示的にnullにしないとガーベッジコレクト(以下GC)されないのでnullを代入する事」
などという事が書いてありましたが、これは一般的には
ロジックそのものに何らかの間違いがある事を意味しています。

ただし、一部のソートロジックでは明示的なnull値の代入が
GCの効率を上げるために有用である事もあります。
その事に自信があるのなら、この警告を無視しても構わないでしょう。

OnlyOneReturn

メソッドの最後以外にreturn文があるロジックを検出します。
つまりこのルールは、メソッドの最後に唯一のreturn文がある事を期待します。

public void foo(int x) {
  if (x > 0) {
    return "hey";   // メソッドの途中にあるreturn文
  }
  return "hi";
}

UnusedModifier

不必要な識別子の記述を検出します。

public interface Foo {
  public abstract void bar(); // public abstract は必要無い
  public static final int X = 0; // public static final は必要無い
}

AssignmentInOperand

オペランド中の代入ロジックを検出します。

if ((x = getX()) == 10) { // 読みにくいので止めた方がいい
  ...
}

AtLeastOneConstructor

コンストラクタが一つも定義されていないクラスを検出します。
この場合、クラスには引数無のデフォルトコンストラクタが作成されますが
これに頼ったコーディングは、思わぬところで弊害を引き起こす可能性があります。

DontImportSun

sun. で始まるimport文を検出します。
これらは通常、明示的にソースに記述すべきではありません。

SuspiciousOctalEscape

疑わしい8進数表記を検出します。

s = "\123"; // これは "\123" と見なされる
s = "\128"; // これは "\12" + "8" と見なされる(8進数に8は使えない為)

CallSuperInConstructor

コンストラクタ内で super または this が呼び出されていないロジックを検出します。

public Foo() {
  this.cnt = 10; // これはNG
}

public Foo() {
  super(); // これはOK
}

public Foo() {
  this(10); // これもOK
}

UnnecessaryParentheses

不必要な括弧を検出します。

return (true); // この括弧は不必要

SingularField

1箇所からしか使用されていないフィールドを検出します。
通常、これはローカル変数化できます。

private int x; // このフィールドは1箇所からしか使われていない
public void foo(int y) {
   x = y + 5;
   return x;
}

DefaultPackage

アクセス識別子を指定していない箇所を検出します。
この場合、パッケージprivateとなります。これはあまり推奨されません。

public class Foo {
  int bar; // アクセス識別子が指定されていない
}

BooleanInversion

最適化されていないBoolean値の反転ロジックを検出します。

b = !b; // これは以下のようにする
b ^= true; // …いや、まぁ確かに。でも正直言ってわかりにくいと思いません?
[コメント(0)]
[PR] b nEXN[jOb f[^b FXb ]ETCgb SEOb ANZXb nEX[J[b ^ItBXb SEO΍b ҋZb sYSۃ[b vb b nCb AXNb ]Eb یb ev[gb ꗷsb b Ƌhb b zb ҋZb ŗmb Stb wb [VbNb }bT[Wb FXb Mb 365b AtBGCgb эb FXb z[y[Wb fCg[hb FXb COnb zm}\b xXg nC ze [cb ob nCEGfBOb Hawaii hotelsb Hawaii Activitiesb bhhrb
y^cЁup_CVtgvT[rXz nCnIvVicA[ibN}.j - rWlXNXq - iq(1) - iq(2) - COze - ؍s
z[y[W쐬 - ^T[o[ - gуz[y[W - uO - ze \ - ^CVFA - B - nC@Rh~jA - o@ze - nC@sY - v[Pbg@ze
[PR] 1ԍoCN𔄂Ǝ҂T܂񂩁HITCgЉ