minimize

Optimization

最適化に関するルールセットです。

LocalVariableCouldBeFinal

1回しか代入されないローカル変数がfinalとして宣言されていない箇所を検出します。

public void bar() {
  String s = "s";
  // その後、sへの代入処理が存在しない場合、sはfinalとして宣言すべき
}

MethodArgumentCouldBeFinal

代入されないメソッドパラメータがfinalとして宣言されていない箇所を検出します。

public void bar(int count) {
  // メソッド内でcountへの代入処理が存在しない場合、countはfinalとして宣言すべき
}

AvoidInstantiatingObjectsInLoops

ループ内でオブジェクトを生成している箇所を検出します。

UseArrayListInsteadOfVector

Vector を使用している箇所を検出します。
代わりに ArrayList を使用しましょう。
ReplaceVectorWithList と同じです。

SimplifyStartsWith

String.startsWith メソッドの引数に一文字を渡している箇所を検索します。

if (x.startsWith("x")) {
  // これは、if (x != null && x.charAt(0) == 'x') とした方がコストが安い
}

UseStringBufferForStringAppends

文字列の連結に += 演算子を使っている箇所を検出します。

String a = "abc";
...
a += "def"; // 文字列の連結には StringBuffer(Builder) を使用した方が良い

UseArraysAsList

配列をリストに変換するのに Arrays.asList を使用していない箇所を検出します。

List l = new ArrayList();
for (int i = 0; i < ints.length; i++) {
  l.add(ints[i]);
}
// List l = Arrays.asList(ints); を使った方がシンプルで高速

AvoidArrayLoops

配列から配列へコピーするのに System.arrayCopy を使用していない箇所を検出します。

for (int i = 0; i < 10; i++) {
 b[i] = a[i];
}
// System.arrayCopy() を使った方がシンプルで高速

UnnecessaryWrapperObjectCreation

不必要なラッパーオブジェクトの使用を検出します。

i = Integer.valueOf(s).intValue(); // これは下のように書き直せる
i = Integer.parseInt(s); // こちらの方が良い

AddEmptyString

空文字に追加しているロジックを検出します。

String s = "" + 123; // こういうのはホント止めて下さい…
String t = Integer.toString(456); // OK!
[コメント(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] e`OȂIԂȂ炱炩B܂͔rĂ݂܂傤