Java インスペクションのリスト
Arquillian
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
正しく準備する必要がある Arquillian テストクラス | ![]() | |
Arquillian テストクラスは @Deployment 注釈を持つメソッドを持つべきです | ![]() | |
Arquillian テストクラスは @Deployment 注釈を持つメソッドを 1 つだけ持つべきです | ![]() | |
@Deployment メソッドの間違った戻り型 | ![]() | |
@Deployment メソッドの誤った署名 | ![]() |
抽象問題
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
具象クラスにキャスト | ![]() | |
instanceof チェックのチェーン | ![]() | |
クラスはそのサブクラスの 1 つを参照 | ![]() | |
フィーチャーの横恋慕 | ![]() | |
instanceof 具体的なクラス | ![]() | |
this の instanceof チェック | ![]() | |
インターフェースメソッドが java.lang.Object のメソッドと衝突する | ![]() | |
具象クラスのローカル変数 | ![]() | |
マジックナンバー | ![]() | |
具象クラスへのメソッドパラメーター | ![]() | |
具象クラスのメソッド戻り | ![]() | |
フィールドまたはパラメーター型として使用される Optional | ![]() | |
強すぎる型キャスト | ![]() | |
内部クラスからのみ使用されるプライベートメソッド | ![]() | |
public メソッドがインターフェースに公開されていません | ![]() | |
boolean パラメーターを持つ public メソッド | ![]() | |
具象クラスの static フィールド | ![]() | |
他の 1 つのクラスからのみ使用される静的メンバー | ![]() | |
タイプが弱くなる可能性があります | ![]() | |
インスタンスフィールドの型は具象クラスです | ![]() |
代入問題
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
代入演算子で置換可能な代入 | ![]() | |
for ループパラメーターへの代入 | ![]() | |
キャッチブロックパラメーターへの代入 | ![]() | |
ラムダパラメーターへの代入 | ![]() | |
メソッドパラメーターへの代入 | ![]() | |
インスタンスコンテキストからの static フィールドへの代入 | ![]() | |
条件として使用される割り当て | ![]() | |
コンストラクターがスーパークラスで定義されたフィールドに値を代入 | ![]() | |
null 割り当て | ![]() | |
使用された割り当ての結果 | ![]() | |
++ または -- の値 | ![]() |
ビット操作問題
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
互換性のないビット単位のマスク操作 | ![]() | |
無意味なビット式 | ![]() | |
不適切な定数によるシフト演算 | ![]() |
クラスメトリクス
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
あまりにも多くのメソッドを持つ匿名の内部クラス | ![]() | |
継承ツリーで深すぎるクラス | ![]() | |
コンストラクターが多すぎるクラス | ![]() | |
フィールドが多すぎるクラス | ![]() | |
メソッドが多すぎるクラス | ![]() | |
内部クラスも深く入れ子になっています | ![]() | |
非常に複雑な匿名クラス | ![]() | |
非常に複雑なクラス | ![]() | |
過度に結合されたクラス | ![]() |
クラス構造
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
抽象クラスはインターフェース | ![]() | |
匿名の内部クラス | ![]() | |
クラスはリスナーを実装する代わりにアダプターを拡張することがあります | ![]() | |
クラス名はファイル名とは異なります | ![]() | |
private コンストラクターだけを持つクラスは final と宣言されるべきです | ![]() | |
抽象クラスで宣言された定数 | ![]() | |
インターフェースで宣言された定数 | ![]() | |
空のクラス | ![]() | |
ローカル変数にすることができるフィールド | ![]() | |
final クラス | ![]() | |
final 法 | ![]() | |
final クラスの final メソッド | ![]() | |
インターフェースの内部クラス | ![]() | |
インターフェースは @FunctionalInterface と注釈を付けられる | ![]() | |
限定スコープの内部クラス | ![]() | |
マーカーインターフェース | ![]() | |
メソッドはクラスごとの定数 | ![]() | |
1 つのファイル内の複数のトップレベルクラス | ![]() | |
抽象クラスの non-op メソッド | ![]() | |
列挙型の final 以外のフィールド | ![]() | |
static 以外のイニシャライザ | ![]() | |
ローカル変数にすることができるパラメーター | ![]() | |
private メソッドが final を宣言しました | ![]() | |
final クラスの private メソッド | ![]() | |
public コンストラクター | ![]() | |
非公開クラスの public コンストラクター | ![]() | |
シングルトン | ![]() | |
static 、final 以外のフィールド | ![]() | |
static メソッドが final を宣言しました | ![]() | |
ユーティリティクラス | ![]() | |
実用クラスは enum である場合もあります | ![]() | |
ユーティリティクラスは final ではありません | ![]() | |
public コンストラクターを持つユーティリティクラス | ![]() | |
public コンストラクターなしのユーティリティクラス | ![]() |
のラベルが付いたインスペクションはエディターでは使用できず、 または を介して起動できます。
クローン問題
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
clone() は CloneNotSupportedException を宣言しません | ![]() | |
clone() はコンストラクターでオブジェクトをインスタンス化します | ![]() | |
非 Cloneabe クラスの clone() メソッド | ![]() | |
非 Cloneabe クラスの clone() メソッド | ![]() | |
clone() メソッドが public ではありません | ![]() | |
clone() はそれが含むクラスと等しい戻り値の型を持つべきです | ![]() | |
clone() メソッドなしのクローンクラス | ![]() | |
clone() Cloneable の使用 | ![]() |
コード成熟度
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
printStackTrace() を呼び出す | ![]() | |
Thread.dumpStack() を呼び出す | ![]() | |
非推奨 API の使用 | ![]() | |
廃止予定の方法はまだ使用されています | ![]() | |
インスペクション抑制注釈 | ![]() | |
Throwable を System.out に印刷 | ![]() | |
削除とマークされた API の使用 | ![]() | |
廃止コレクション型の使用 | ![]() | |
廃止 API の使用 | ![]() | |
System.out または System.err の使用 | ![]() |
コードスタイル問題
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
列挙値に置換可能な配列 | ![]() | |
new 式なしの配列作成 | ![]() | |
assert メッセージは文字列ではありません | ![]() | |
結合可能な代入と宣言 | ![]() | |
ブロックマーカーのコメント | ![]() | |
C スタイルの配列宣言 | ![]() | |
String.concat() の呼び出しは + に置き換えることができます | ![]() | |
境界ワイルドカードが使用可能 | ![]() | |
イコール比較の連鎖 | ![]() | |
連鎖メソッド呼び出し | ![]() | |
クラスは明示的に java.lang.Object を継承 | ![]() | |
コードブロックには単一のステートメントが含まれています | ![]() | |
Optional に置換できる条件演算子 | ![]() | |
混乱する 8 進エスケープシーケンス | ![]() | |
定数式を評価可能 | ![]() | |
比較の反対側の定数 | ![]() | |
波括弧なしのフロー文の制御 | ![]() | |
ダイヤモンド演算子は明示的な型引数で置換可能です | ![]() | |
Enum 値で equals() が呼び出されました | ![]() | |
"literal".equals(expression) ではなく expression.equals("literal") | ![]() | |
イニシャライザーに移動可能なフィールド割り当て | ![]() | |
フィールドは Final | ![]() | |
?:、&&、または || 表現に置き換え可能な if 文 | ![]() | |
super() への暗黙の呼び出し | ![]() | |
インスタンスフィールドアクセスが this で修飾されていません | ![]() | |
インスタンスフィールドアクセスが this で修飾されていません | ![]() | |
コードブロックを持つことができるラベル付き switch ルール | ![]() | |
冗長なコードブロックがあるラベル付き switch ルール | ![]() | |
ラムダ本体はコードブロックにすることが可能 | ![]() | |
ラムダは匿名クラスに置換可能 | ![]() | |
ラムダパラメータータイプを指定可能 | ![]() | |
'List.indexOf()' 式は contains() と置き換え可能です | ![]() | |
ローカル変数またはパラメーターは final にできます | ![]() | |
メソッド参照はラムダで置換可能 | ![]() | |
未ソートの修飾子 | ![]() | |
マルチキャッチは別々のキャッチブロックに分割可能 | ![]() | |
1 つの宣言で複数の変数 | ![]() | |
ネストされたメソッド呼び出し | ![]() | |
Optional 型の null 値 | ![]() | |
Objects.equals() は equals() で置換可能 | ![]() | |
Optional は if ステートメントのシーケンスに置き換えられます | ![]() | |
Optional に配列またはコレクションが含まれています | ![]() | |
Optional.isPresent() は関数スタイルの式に置換可能 | ![]() | |
ジェネリクスにできる Raw 型 | ![]() | |
定数配列作成における冗長 new 式 | ![]() | |
冗長フィールドの初期化 | ![]() | |
冗長なインターフェース宣言 | ![]() | |
冗長な引数なしのコンストラクター | ![]() | |
結果計算から分離された return | ![]() | |
this の帰還 | ![]() | |
簡略化可能な注釈 | ![]() | |
単一要素注釈 | ![]() | |
size() == 0 は isEmpty() と交換可能 | ![]() | |
標準の Charset オブジェクトを使用可能 | ![]() | |
ループに置き換え可能な Stream API 呼び出しチェーン | ![]() | |
Stream API チェーンに統合できる後続のステップ | ![]() | |
複数のリソースを持つ try ステートメントは分割可能 | ![]() | |
型パラメーターは明示的に java.lang.Object を拡張します | ![]() | |
不明確な式 | ![]() | |
不当に修飾された内部クラスへのアクセス | ![]() | |
不必要に修飾された static アクセス | ![]() | |
不必要に修飾され static インポートしている要素 | ![]() | |
ローカル変数またはパラメーターに不要な final | ![]() | |
equals() 呼び出しの前に不要な null チェック | ![]() | |
不要な super 修飾子 | ![]() | |
不要な this 修飾子 | ![]() | |
super() への不要な呼び出し | ![]() | |
toString() への不要な呼び出し | ![]() | |
不要なコードブロック | ![]() | |
不要な文字列への変換 | ![]() | |
不要な enum 修飾子 | ![]() | |
不要な完全修飾名 | ![]() | |
不要なインターフェース修飾子 | ![]() | |
不必要なカッコ | ![]() | |
this または super には不要な修飾子 | ![]() | |
不要なセミコロン | ![]() | |
修飾されていない内部クラスアクセス | ![]() | |
修飾されていない static アクセス | ![]() |
コンパイラー問題
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
Javac 特有の問題 | ![]() | |
未チェックの警告 | ![]() |
並行注釈問題
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
static フィールドによって保護されているインスタンスメンバー | ![]() | |
非 final @GuardedBy フィールド | ![]() | |
@Immutable クラスの非 final フィールド | ![]() | |
インスタンスファイルにより保護された静的メンバーまたはこれ | ![]() | |
保護されていないフィールドアクセス | ![]() | |
不明な @GuardedBy フィールド | ![]() |
制御フロー問題
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
アサーションは if 文で置換可能 | ![]() | |
ブール式を条件式に置換可能 | ![]() | |
ラベル付きの break ステートメント | ![]() | |
break ステートメント | ![]() | |
無限ループ内の条件付き break | ![]() | |
条件式を分岐式の中に入れることが可能 | ![]() | |
条件式 (?:) | ![]() | |
同一の分岐を持つ条件式 | ![]() | |
否定条件付き条件式 | ![]() | |
定数条件式 | ![]() | |
ラベル付きの continue ステートメント | ![]() | |
continue ステートメント | ![]() | |
switch ステートメントの最後のケースではない default | ![]() | |
二重否定 | ![]() | |
if ステートメントの重複条件 | ![]() | |
&& または || の重複条件 | ![]() | |
大文字と小文字を区別しない列挙 switch ステートメント | ![]() | |
switch ステートメントのフォールスルー | ![]() | |
for ループは while ループに置き換えることができます | ![]() | |
欠落している部品を含む for ループ | ![]() | |
冪等ループ本体 | ![]() | |
if ステートメントは条件式に置き換えることができます | ![]() | |
共通部分を含む if ステートメント | ![]() | |
否定条件付きの if ステートメント | ![]() | |
ブランチが多すぎる if ステートメント | ![]() | |
無限ループステートメント | ![]() | |
ラベル付きステートメント | ![]() | |
ローカル変数が異なる switch で使用され宣言されているブランチ | ![]() | |
ループしないループ文 | ![]() | |
ループ変数がループ内で更新されない | ![]() | |
暗黙の終了条件を持つループ | ![]() | |
否定の条件式 | ![]() | |
否定同値式 | ![]() | |
入れ子の switch | ![]() | |
ネストされた条件式 | ![]() | |
非常に複雑なブール式 | ![]() | |
無意味な indexOf() の比較 | ![]() | |
無意味なブール式 | ![]() | |
冗長 else | ![]() | |
冗長 if ステートメント | ![]() | |
冗長な条件式 | ![]() | |
簡略化可能なブール式 | ![]() | |
簡略化可能な条件式 | ![]() | |
ステートメントは assert または Objects.requireNonNull に置き換えることができます | ![]() | |
switch ステートメント | ![]() | |
ブランチが少なすぎる switch ステートメント | ![]() | |
ブランチ密度が低すぎる switch ステートメント | ![]() | |
ブランチが多すぎる switch ステートメント | ![]() | |
default なしの switch ステートメントブランチ | ![]() | |
メソッド呼び出しの前に不要な null チェック | ![]() |
データフロー
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
真偽メソッドが常に逆転されています | ![]() | |
常に反転されている真偽値 | ![]() | |
デメテルの法則に違反するメソッド呼び出し | ![]() | |
負の名前のブール変数 | ![]() | |
冗長なローカル変数 | ![]() | |
ローカル変数の再利用 | ![]() | |
変数の範囲が広すぎる | ![]() | |
値が一定であることが知られている変数の使用 | ![]() |
宣言の冗長性
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
インスタンス参照を通した static メンバーへのアクセス | ![]() | |
実際のメソッドパラメーターは同じ定数です | ![]() | |
簡素化可能なコレクター | ![]() | |
宣言アクセスの制限 | ![]() | |
宣言は final 修飾子を持つことができます | ![]() | |
デフォルトの注釈パラメーター値 | ![]() | |
throws の重複 | ![]() | |
空のメソッド | ![]() | |
折りたたみ可能な関数式 | ![]() | |
使用しないメソッドの戻り値 | ![]() | |
メソッドは同じ値を返します | ![]() | |
明らかに null でない引数で呼び出された null チェックメソッド | ![]() | |
単純化できる Optional 呼び出しチェーン | ![]() | |
冗長 close() | ![]() | |
モジュール情報内の冗長 requires ステートメント | ![]() | |
冗長 throws 句 | ![]() | |
冗長なラムダパラメーター型 | ![]() | |
空コンテナーでの冗長な操作 | ![]() | |
冗長な Stream または Optional 呼び出しチェーンのステップ | ![]() | |
単純化できる Stream API 呼び出しチェーン | ![]() | |
関数式の自明な使い方 | ![]() | |
不要なモジュール依存関係 | ![]() | |
未使用の宣言 | ![]() | |
未使用ラベル | ![]() | |
自身に割り当てられた変数 | ![]() | |
プリミティブ型にできるラッパー型 | ![]() |
のラベルが付いたインスペクションはエディターでは使用できず、 または を介して起動できます。
依存関係問題
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
依存関係が多すぎるクラス | ![]() | |
依存関係が多すぎるクラス | ![]() | |
推移的依存関係が多すぎるクラス | ![]() | |
推移的な従属要素が多すぎるクラス | ![]() | |
周期クラス依存性 | ![]() | |
周期パッケージ依存関係 | ![]() | |
不正なパッケージ依存関係 | ![]() | |
疑わしいパッケージプライベートアクセス | ![]() |
のラベルが付いたインスペクションはエディターでは使用できず、 または を介して起動できます。
カプセル化
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
別のオブジェクトの non-public フィールドへのアクセス | ![]() | |
可変型のフィールドの代入または返却 | ![]() | |
パッケージ可視フィールド | ![]() | |
パッケージ可視ネストクラス | ![]() | |
protected フィールド | ![]() | |
protected ネストクラス | ![]() | |
public フィールド | ![]() | |
public ネストクラス | ![]() |
エラー処理
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
例外を無視する可能性があるキャッチブロック | ![]() | |
キャッチした例外がすぐに再スローされています | ![]() | |
チェックされた例外クラス | ![]() | |
クラスは java.lang.Throwable を直接拡張する | ![]() | |
finally ブロック内の continue または break | ![]() | |
空の finally ブロック | ![]() | |
空の try ブロック | ![]() | |
引数なしで呼び出される例外コンストラクター | ![]() | |
正常に完了できない finally ブロック | ![]() | |
catch パラメーターの instanceof | ![]() | |
java.lang.Error は再スローされません | ![]() | |
java.lang.ThreadDeath は再スローされません | ![]() | |
ネストした try ステートメント | ![]() | |
例外クラスの非 final フィールド | ![]() | |
投入された null | ![]() | |
広すぎる catch ブロック | ![]() | |
広すぎる throws 句 | ![]() | |
禁止された例外のキャッチ | ![]() | |
禁止された例外が宣言されました | ![]() | |
禁止された例外のスロー | ![]() | |
finally ブロック内の return | ![]() | |
try ステートメントを含むことによってキャッチされた throw | ![]() | |
捕捉された例外を無視する catch ブロック内の throw | ![]() | |
finally ブロック内の throw | ![]() | |
未チェックの例外クラス | ![]() | |
未チェックの例外が throws 句で宣言されています | ![]() | |
Throwable.initCause() への不要な呼び出し | ![]() |
finalize 関連
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
明示的に呼び出された finalize() | ![]() | |
finalize() 宣言 | ![]() | |
finalize() が宣言されていません protected | ![]() |
一般
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
製品コードでのテスト専用クラスまたはメソッド呼び出し | ![]() |
インポート
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
* インポート | ![]() | |
同じパッケージからのインポート | ![]() | |
java.lang インポート | ![]() | |
単一クラスのインポート | ![]() | |
static インポート | ![]() | |
未使用の import | ![]() |
継承問題
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
具象クラスを継承した抽象クラス | ![]() | |
具象サブクラスを持たない抽象クラス | ![]() | |
抽象メソッドがない抽象クラス | ![]() | |
抽象メソッドをオーバーライドする抽象メソッド | ![]() | |
具象メソッドをオーバーライドする抽象メソッド | ![]() | |
実装が欠落している抽象メソッド | ![]() | |
Collection クラスを明示的に拡張したクラス | ![]() | |
注釈インターフェースを拡張したクラス | ![]() | |
ユーティリティクラスを拡張したクラス | ![]() | |
一般的に使用される基本クラスを拡張できる可能性があるクラス | ![]() | |
実行時にオーバーライドできない final 宣言 | ![]() | |
具象サブクラスを持たないインターフェース | ![]() | |
スーパーメソッドを呼び出さないメソッド | ![]() | |
スーパーメソッドと同じメソッド | ![]() | |
欠落した @Override 注釈 | ![]() | |
非可変長引数メソッドが可変長引数メソッドをオーバーライド | ![]() | |
オーバーライドを防ぐパラメーター型 | ![]() | |
abstract クラスの public コンストラクター | ![]() | |
静的継承 | ![]() | |
final のクラスを継承した型パラメーター | ![]() |
初期化
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
オブジェクト構築時に呼び出される抽象メソッド | ![]() | |
二重波括弧の初期化 | ![]() | |
未初期化の可能性があるインスタンスフィールド | ![]() | |
初期化の前に使用されるインスタンスフィールド | ![]() | |
クラスの初期化時に使用される非 final な static フィールド | ![]() | |
オブジェクト構築時に呼び出されるオーバーライド可能なメソッド | ![]() | |
オブジェクト構築時に呼び出されるオーバーライドされたメソッド | ![]() | |
未初期化の可能性がある static フィールド | ![]() | |
初期化の前に使用される static フィールド | ![]() | |
オブジェクト構築でエスケープされた this 参照 | ![]() | |
static フィールドの安全でない初期化 | ![]() |
国際化
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
AWT/Swing コードで使用される絶対配置 | ![]() | |
Date.toString() を呼び出す | ![]() | |
ロケールなしで String.toUpperCase() または codetoLowerCase() を呼び出す | ![]() | |
Time.toString() を呼び出す | ![]() | |
数値 toString() への呼び出し | ![]() | |
不審な String メソッドを呼び出す | ![]() | |
文字比較 | ![]() | |
重複文字列表現 | ![]() | |
ハードコード文字列 | ![]() | |
プラットフォームコードのデフォルトの文字セットの暗黙の使用箇所 | ![]() | |
文字列の大文字化が正しくありません | ![]() | |
ロケールなしの SimpleDateFormat のインスタンス化 | ![]() | |
マジックキャラクター | ![]() | |
文字列連結 | ![]() | |
不必要な Unicode エスケープシーケンス | ![]() | |
StringTokenizer の使用 | ![]() |
J2ME 問題
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
1 つの直接継承しか持たない抽象クラス | ![]() | |
ループ条件内で Array.length | ![]() | |
安全に閉じられていない Connection | ![]() | |
1 つの直接継承しか持たないインターフェース | ![]() | |
OutOfMemoryError チェックなしの大規模配列割り当て | ![]() | |
ループ条件内でメソッド呼び出し | ![]() | |
2 の累乗で乗算または除算 | ![]() | |
大きすぎるプリミティブ型配列の初期化子 | ![]() | |
安全に閉じられていない RecordStore | ![]() | |
単一文字 startsWith() または codeendsWith() | ![]() | |
合成アクセサー呼び出し | ![]() |
Java 言語レベル
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
注釈 | ![]() | |
注釈クラス | ![]() | |
assert ステートメント | ![]() | |
オートボクシング | ![]() | |
オートアンボクシング | ![]() | |
列挙型クラス | ![]() | |
拡張 for ステートメント | ![]() | |
識別子としての assert の使用 | ![]() | |
識別子としての enum の使用 | ![]() | |
可変長引数メソッド | ![]() |
Java 言語レベルの移行支援
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
compare() メソッドは数を比較するために使用することができます | ![]() | |
Enumeration はイテレーション可能 | ![]() | |
if は switch と交換可能 | ![]() | |
設定された言語レベルでは利用できない API の使用 | ![]() |
Java 5
BigDecimal 従来のメソッドが呼び出されました | ![]() | |
Collections.EMPTY_ * フィールドアクセスは Collections.empty*() メソッド呼び出しと置き換え可能 | ![]() | |
for ループは拡張 for ループと交換可能 | ![]() | |
String.indexOf() 式は contains() と置き換え可能です | ![]() | |
メソッドは可変長引数メソッドにすることが可能 | ![]() | |
パラメーター化されたクラスの raw 使用 | ![]() | |
StringBuffer は StringBuilder であり得る | ![]() | |
不要なボクシング | ![]() | |
不要なアンボクシング | ![]() | |
while ループは拡張 for ループと交換可能 | ![]() |
Java 7
Objects.equals() 式で置き換え可能な equals() 式 | ![]() | |
明示的な型は <> で置換可能 | ![]() | |
try ステートメントの中の同じ catch ブランチ | ![]() | |
パラメーター化された可変長型からヒープ汚染の可能性 | ![]() | |
リソース付きの try と交換可能な try finally | ![]() |
Java 8
匿名型はラムダで置換可能 | ![]() | |
匿名型はメソッド参照で置換可能 | ![]() | |
匿名型は短いラムダで代替 | ![]() | |
Collections.sort() は List.sort() に置換可能 | ![]() | |
Comparator コンビネーターが使用可能 | ![]() | |
Stream チェーンに折りたたみ可能な式 | ![]() | |
単純化可能な forEach 呼び出し | ![]() | |
Guava の関数型プリミティブは Java で置換できます | ![]() | |
ラムダはメソッド呼び出しで置換可能 | ![]() | |
ラムダはメソッド参照に置換可能 | ![]() | |
ループは Stream API で折りたたみ可能 | ![]() | |
ループは Collection.removeIf() に置換可能 | ![]() | |
Map.forEach が使用可能 | ![]() | |
static クラスを使用した擬似関数式 | ![]() | |
単一の Map メソッドが使用可能 | ![]() | |
ステートメントラムダは式ラムダで置換可能 | ![]() |
Java 9
自動モジュールへの依存 | ![]() | |
不変コレクションの作成はコレクションのファクトリ呼び出しで置換可能 | ![]() | |
メソッド呼び出しで置き換え可能な NULL チェック | ![]() |
Java 10
ローカル変数型は省略可能 | ![]() | |
変数型は明示的にすることが可能 | ![]() |
Java 11
Files.readString() か Files.writeString() は使用することができます | ![]() | |
String.repeat() を使用可能 | ![]() |
Java 13
新しいスタイル switch は古いスタイルのものと交換することができます | ![]() | |
ステートメントは、拡張 switch に置き換えることができます | ![]() | |
テキストブロックは通常の文字列リテラルに置換できます | ![]() | |
テキストブロックを使用できます | ![]() |
JavaBeans 問題
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
コンストラクターを持たないクラス | ![]() | |
引数なしのコンストラクターを持たないクラス | ![]() | |
setter があるが getter がないフィールド | ![]() | |
自身に設定されているプロパティ値 | ![]() | |
疑わしい getter/setter | ![]() |
JavaDoc
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
<code>...</code> は {@code ...} に置換可能 | ![]() | |
ぶら下げ Javadoc コメント | ![]() | |
宣言には Javadoc 問題があります | ![]() | |
Javadoc 参照の宣言に問題があります | ![]() | |
Javadoc の HTML 問題(DocLint) | ![]() | |
package-info.java がありません | ![]() | |
欠落した @Deprecated 注釈 | ![]() | |
package ステートメントなしの package-info.java | ![]() | |
package.html は package-info.java に変換できます | ![]() | |
不要な Javadoc リンク | ![]() | |
不要な {@inheritDoc} Javadoc のコメント | ![]() |
JUnit
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
非変換型のオブジェクト間の assertEquals() | ![]() | |
assertEquals() が配列に呼び出されました | ![]() | |
assertEquals() は assertSame() であり得る | ![]() | |
アサーション式は assertThat メソッド呼び出しで置き換えることができます | ![]() | |
定数 JUnit のアサーション引数 | ![]() | |
テストメソッドの本体で予期しない例外がスローされることはありません | ![]() | |
テストの問題行をハイライト | ![]() | |
@Ignore / @Disabled 注釈が付けられた JUnit テスト | ![]() | |
製品の JUnit テストメソッド | ![]() | |
アサーションのない JUnit テストメソッド | ![]() | |
製品ソースの JUnit TestCase | ![]() | |
JUnit TestCase を非自明なコンストラクターで使用する | ![]() | |
JUnit 4 テストは JUnit 5 にすることが可能 | ![]() | |
JUnit 3 TestCase を拡張するクラスの JUnit 4 テストメソッド | ![]() | |
JUnit 5 の不正な @Nested クラス | ![]() | |
JUnit 5 の不正なパラメーター化テスト | ![]() | |
JUnit 5 の不正な繰り返しテスト | ![]() | |
不正な setUp() または tearDown() メソッド | ![]() | |
間違った @Before または @After メソッド | ![]() | |
間違った @BeforeClass/@BeforeAll または @AfterClass/@AfterAll メソッド | ![]() | |
間違った @DataPoint フィールド | ![]() | |
不正な @Rule/@ClassRule フィールド | ![]() | |
不正なテストメソッド | ![]() | |
JUnit アサーションでメッセージが表示されない | ![]() | |
誤った assertEquals() 引数 | ![]() | |
テストメソッドで宣言された複数の例外 | ![]() | |
JUnit 5 テストで廃止されたアサーション | ![]() | |
JUnit 4 クラスの古いスタイルの JUnit テストメソッド | ![]() | |
@RunWith(JUnitPlatform.class) テストメソッドなし | ![]() | |
@RunWith(Parameterized.class) データプロバイダーなし | ![]() | |
簡略化可能な JUnit アサーション | ![]() | |
suite() メソッドが宣言されていません static | ![]() | |
finally ブロックから super.tearDown() が呼び出されていません | ![]() | |
テストなしのテストクラス | ![]() | |
構築できない JUnit TestCase | ![]() | |
古い junit.framework.Assert メソッドの使い方 | ![]() |
ログ関連
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
複数のロガーを持つクラス | ![]() | |
ロガーのないクラス | ![]() | |
ログ条件がロギングコールと一致しません | ![]() | |
外部クラスで初期化されたロガー | ![]() | |
ログ条件で保護されていないロギングコール | ![]() | |
非定数ロガー | ![]() | |
ロギングコールの引数としての非定数文字列連結 | ![]() | |
ロギングコールのプレースホルダーの数が引数の数と一致しません | ![]() | |
ロギングなしの public メソッド | ![]() |
メモリ問題
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
無名クラスは名前付き static 内部クラスにすることができます | ![]() | |
System.gc() または Runtime.gc() への呼び出し | ![]() | |
内部クラスは static かもしれません | ![]() | |
匿名、ローカルまたは内部クラスのインスタンスの返却 | ![]() | |
静的コレクション | ![]() | |
StringBuilder フィールド | ![]() | |
不必要なゼロ長配列の使用 | ![]() | |
長さゼロの配列割り当て | ![]() |
メソッドメトリクス
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
パラメーターが多すぎるコンストラクター | ![]() | |
4 つ以上の否定を持つメソッド | ![]() | |
複数のループを持つメソッド | ![]() | |
複数の return を持つメソッド | ![]() | |
あまりにも多くの例外が宣言されたメソッド | ![]() | |
パラメーターが多すぎるメソッド | ![]() | |
非常に複雑なメソッド | ![]() | |
過結合メソッド | ![]() | |
長すぎるラムダ式 | ![]() | |
長すぎるメソッド | ![]() | |
過度にネストされたメソッド | ![]() |
モジュール化問題
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
そのモジュールから独立したクラス | ![]() | |
他の 1 つのモジュールからのみ使用されるクラス | ![]() | |
言語レベル設定の矛盾 | ![]() | |
クラスが少なすぎるモジュール | ![]() | |
クラスが多すぎるモジュール | ![]() |
のラベルが付いたインスペクションはエディターでは使用できず、 または を介して起動できます。
命名規約
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
ブールメソッド名は疑問単語で始まる必要があります | ![]() | |
パッケージ名の接頭辞を持つクラス名 | ![]() | |
祖先名と同じクラス名 | ![]() | |
クラスの命名規約 | ![]() | |
複雑な main() メソッド | ![]() | |
例外クラス名が Exception で終わっていません | ![]() | |
フィールド命名規約 | ![]() | |
Java モジュールの命名規約 | ![]() | |
ラムダパラメーター命名規約 | ![]() | |
ラムダ式には好ましくないメソッドのオーバーロード | ![]() | |
ローカル変数の命名規約 | ![]() | |
クラス名と同じメソッド名 | ![]() | |
親クラス名と同じメソッド名 | ![]() | |
大文字と小文字のみ異なるメソッド名 | ![]() | |
メソッド命名規約 | ![]() | |
メソッドのパラメーター命名規約 | ![]() | |
非ブールメソッド名は疑問単語で始まらない | ![]() | |
大文字の大文字小文字のフィールド | ![]() | |
例外でないクラス名は Exception で終わります | ![]() | |
同じ数のパラメーターを持つオーバーロードされたメソッド | ![]() | |
オーバーロードされた可変長引数メソッド | ![]() | |
パッケージの命名規約 | ![]() | |
オーバーライドされたメソッドのパラメーター名がパラメーターと異なる | ![]() | |
疑問のある名前 | ![]() | |
標準変数名 | ![]() | |
識別子における $ の使用 | ![]() |
数値問題
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
丸めモード引数なしで BigDecimal メソッドを呼び出す | ![]() | |
算術コンテキストで使用される char 式 | ![]() | |
short と char の値の比較 | ![]() | |
Double.NaN または Float.NaN との比較 | ![]() | |
紛らわしい浮動小数点型リテラル | ![]() | |
java.lang.Math への定数呼び出し | ![]() | |
ゼロ除算 | ![]() | |
float にキャストされる double リテラルは、float リテラルになる可能性があります | ![]() | |
equals() が java.math.BigDecimal を呼び出しました | ![]() | |
浮動小数点等価比較 | ![]() | |
暗黙の数値変換 | ![]() | |
long にキャストされる int リテラルは、long リテラルになる可能性があります | ![]() | |
浮動小数点コンテキストにおける整数除算 | ![]() | |
整数乗算またはシフトの暗黙的な long へのキャスト | ![]() | |
L ではなく l で終わる long リテラル | ![]() | |
java.lang.Math への再現不可能な呼び出し | ![]() | |
プリミティブ引数を持つ Number コンストラクター呼び出し | ![]() | |
精度を失う数値キャスト | ![]() | |
数値のオーバーフロー | ![]() | |
同じ配列内の 8 進数と 10 進整数 | ![]() | |
8 進整数 | ![]() | |
非常に複雑な算術式 | ![]() | |
無意味な算術式 | ![]() | |
疑わしい奇数のテスト | ![]() | |
疑わしい数値リテラルのアンダースコア | ![]() | |
単項プラス | ![]() | |
不必要な明示的な数値キャスト | ![]() | |
不要な単項マイナス | ![]() | |
予測不可能な BigDecimal コンストラクター呼び出し | ![]() |
パッケージ問題
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
そのパッケージとは無関係のクラス | ![]() | |
他の 1 つのパッケージからのみ使用されるクラス | ![]() | |
空のディレクトリ | ![]() | |
例外パッケージ | ![]() | |
複数モジュールのクラスを持つパッケージ | ![]() | |
独立依存グラフ | ![]() | |
少なすぎるクラスのパッケージ | ![]() | |
多すぎるクラスのパッケージ | ![]() |
のラベルが付いたインスペクションはエディターでは使用できず、 または を介して起動できます。
パフォーマンス
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
Boolean のコンストラクター呼び出し | ![]() | |
すでにボックス化した値のボクシング | ![]() | |
一括処理に置換できるイテレーション処理 | ![]() | |
少なすぎる引数で Arrays.asList() を呼び出す | ![]() | |
クラス内から単純な getter を呼び出す | ![]() | |
クラス内からシンプルな setter 呼び出し | ![]() | |
クラス初期化子は static かもしれません | ![]() | |
Collection.toArray() 呼び出しスタイル | ![]() | |
初期容量のないコレクション | ![]() | |
空の文字列との連結 | ![]() | |
Pattern compile で置換できる正規表現の使用 | ![]() | |
equals() 呼び出しは == に置き換えることができます | ![]() | |
java.net.URL オブジェクトに対して equals() または hashCode() が呼び出されました | ![]() | |
ラムダにすることができる明示的な引数 | ![]() | |
フィールドは static | ![]() | |
count() で終わる非効率な Stream API 呼び出しチェーン | ![]() | |
Class オブジェクトを取得するためにオブジェクトをインスタンス化する | ![]() | |
keySet() の反復は最適化されるかもしれません | ![]() | |
List.remove() がループ内で呼び出されました | ![]() | |
ループは条件が満たされた後に終了できます | ![]() | |
手動による配列のコピー | ![]() | |
手動による配列からコレクションへのコピー | ![]() | |
Map または Set に java.net.URL オブジェクトを含めることができます | ![]() | |
EnumMap で置換可能な Map | ![]() | |
方法は static | ![]() | |
StringBuilder にすべき非定数 String | ![]() | |
ループ内でのオブジェクトの割り当て | ![]() | |
equals() または hashCode() 内のオブジェクトのインスタンス化 | ![]() | |
冗長 Collection.addAll() 呼び出し | ![]() | |
String.format() への冗長呼び出し | ![]() | |
EnumSet で置換可能な Set | ![]() | |
String.indexOf() 呼び出し内の単一文字文字列引数 | ![]() | |
単一文字列連結 | ![]() | |
String.equals("") | ![]() | |
StringBuilder.append() 呼び出しの引数としての文字列連結 | ![]() | |
ループ内の文字列連結 | ![]() | |
連結された StringBuilder.toString() | ![]() | |
初期容量のない StringBuilder | ![]() | |
末尾再帰 | ![]() | |
文字列からの変換で不要な一時オブジェクト | ![]() | |
文字列への変換で不要な一時オブジェクト | ![]() | |
Random.nextDouble() を使って乱数を得る | ![]() |
ポータビリティ
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
Runtime.exec() を呼び出す | ![]() | |
System.exit() または関連メソッドを呼び出す | ![]() | |
System.getenv() を呼び出す | ![]() | |
ハードコードされたファイルセパレーター | ![]() | |
ハードコードされた改行コード | ![]() | |
ネイティブメソッド | ![]() | |
java.lang.ProcessBuilder クラスの使用 | ![]() | |
AWT ピアクラスの使用 | ![]() | |
具象 JDBC ドライバークラスの使用 | ![]() | |
sun.* クラスの使用 | ![]() |
潜在的なバグ
null 値許容の問題
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
@NotNull フィールドが初期化されていません | ![]() | |
@Nullable 問題 | ![]() | |
null の帰還 | ![]() |
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
Arrays.equals() の代わりに == を使った配列比較 | ![]() | |
assert ステートメントの条件は一定です | ![]() | |
副作用のある assert ステートメント | ![]() | |
配列上の toString() を呼び出す | ![]() | |
String.replaceAll("。" ;, ...)の呼び出し | ![]() | |
デフォルトの toString() を呼び出す | ![]() | |
instanceof とのコンフリクト | ![]() | |
互換性のないインターフェースへのキャスト | ![]() | |
Class.getClass() 呼び出し | ![]() | |
オブジェクト参照をキャプチャーしているクリーナー | ![]() | |
コレクションは自己に追加されました | ![]() | |
同等に実装されているが equals() は上書きされない | ![]() | |
可変長引数メソッドへの引数の混乱 | ![]() | |
可変長引数メソッドへのプリミティブ配列引数の混乱 | ![]() | |
定数条件 & 例外 | ![]() | |
規約問題 | ![]() | |
フィールドが無いコピーコンストラクター | ![]() | |
共変量 equals() | ![]() | |
java.util.StringTokenizer の区切り文字重複 | ![]() | |
空のクラス初期化子 | ![]() | |
equals() の代わりに equal() | ![]() | |
equals() と hashCode() はペアになっていません | ![]() | |
非変換型のオブジェクト間の equals() | ![]() | |
equals() が StringBuilder で呼び出されました | ![]() | |
equals() が配列に呼び出されました | ![]() | |
equals() はそれ自身で呼ばれました | ![]() | |
パラメーターのクラスをチェックしない equals() メソッド | ![]() | |
hashCode() が配列に呼び出されました | ![]() | |
無限再帰 | ![]() | |
サブクラスで参照される内部クラス | ![]() | |
互換性のないインターフェースを備えた instanceof | ![]() | |
ユーティリティクラスのインスタンス化 | ![]() | |
無効なメソッド参照が使用されている Comparator | ![]() | |
イテラブルが可変長引数として使用されています | ![]() | |
next() を呼び出す Iterator.hasNext() | ![]() | |
NoSuchElementException を投げられない Iterator.next() | ![]() | |
0 または数十億回実行されるループ | ![]() | |
マジック定数 | ![]() | |
誤ったフォーマット文字列 | ![]() | |
不正な正規表現 | ![]() | |
不正な形式の XPath 式 | ![]() | |
Math.random() から int にキャスト | ![]() | |
文字列操作での大文字と小文字の不一致 | ![]() | |
StringBuilder のクエリと更新の不一致 | ![]() | |
コレクションのクエリおよび更新の不一致 | ![]() | |
配列の読み書きの不一致 | ![]() | |
新しいオブジェクトは == を使って比較されます | ![]() | |
compareTo() で参照される非最終項目 | ![]() | |
equals() で参照される非最終項目 | ![]() | |
hashCode() で参照される非最終項目 | ![]() | |
非短絡ブール式 | ![]() | |
無限にストリームを消費する非短絡動作 | ![]() | |
equals() の代わりに == を使用した数値比較 | ![]() | |
equals() の代わりに == を使用したオブジェクト比較 | ![]() | |
Objects.equals() が配列で呼び出されました | ![]() | |
isPresent() チェックなしで呼び出されている Optional.get() | ![]() | |
Map キーまたは Set 要素の上書き | ![]() | |
null 用にチェックされた参照が if 内で使用されていません | ![]() | |
ソースのみの注釈への反射的なアクセス | ![]() | |
メソッド呼び出し結果の無視 | ![]() | |
結果を無視するオブジェクト割り当て | ![]() | |
比較不可能な要素を含むソートコレクション | ![]() | |
本文が空のステートメント | ![]() | |
サブクラスを介して参照される static フィールド | ![]() | |
サブクラスを介して参照される static メソッド | ![]() | |
CharSequence 引数で呼び出された String.equals() | ![]() | |
equals() の代わりに == を使用した文字列比較 | ![]() | |
MessageFormat.format() 呼び出しの引数としての文字列連結 | ![]() | |
format() 呼び出しの引数としての文字列連結 | ![]() | |
空白文字がない文字列リテラル連結 | ![]() | |
char 引数を持つ StringBuilder コンストラクターの呼び出し | ![]() | |
compareTo() での減算 | ![]() | |
疑わしい Collection.toArray() 電話 | ![]() | |
疑わしい Comparator.compare() の実装 | ![]() | |
ループ内の不審な List.remove() | ![]() | |
疑わしい System.arraycopy() 電話 | ![]() | |
疑わしい配列のメソッド呼び出し | ![]() | |
疑わしい配列キャスト | ![]() | |
疑わしいコレクションメソッド呼び出し | ![]() | |
波括弧のない制御ステートメントの後の疑わしいインデント | ![]() | |
疑わしい整数の分割代入 | ![]() | |
疑わしい compare メソッドの使用 | ![]() | |
疑わしい変数とパラメーター名の組み合わせ | ![]() | |
switch ステートメントのテキストラベル | ![]() | |
Throwable はスローされません | ![]() | |
安全でない Class.newInstance() への呼び出し | ![]() | |
使用されない代入 | ![]() | |
Hashtable としての properties オブジェクトの使用 | ![]() | |
JDBC ResultSet でのインデックス 0 の使用 | ![]() | |
不正な package 文 | ![]() |
プロパティファイル
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
無効なプロパティキー | ![]() |
リフレクションアクセス
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
MethodHandle/VarHandle 型の不一致 | ![]() | |
リフレクションで使用される非ランタイム注釈 | ![]() | |
モジュール間のリフレクションアクセス問題 | ![]() | |
存在しない / 見えないクラスメンバーへのリフレクションアクセス | ![]() | |
リフレクション呼び出し引数の不一致 | ![]() |
リソース管理
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
安全に閉じられていないチャネル | ![]() | |
安全に閉じられていない Hibernate リソース | ![]() | |
安全に閉じられていない I/O リソース | ![]() | |
安全に閉じられていない JDBC リソース | ![]() | |
安全に閉じられていない JNDI リソース | ![]() | |
安全に閉じられていないソケット | ![]() | |
DriverManager を使用して JDBC 接続を取得する | ![]() |
セキュリティ
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
システムプロパティへのアクセス | ![]() | |
定数でない文字列で Connection.prepare*() を呼び出す | ![]() | |
定数でない文字列で Runtime.exec() を呼び出す | ![]() | |
定数でない文字列で Statement.execute() を呼び出す | ![]() | |
定数でない文字列で System.loadLibrary() を呼び出す | ![]() | |
System.setSecurityManager() を呼び出す | ![]() | |
ClassLoader インスタンス化 | ![]() | |
セキュリティに考慮が必要な Cloneable クラス | ![]() | |
カスタム ClassLoader | ![]() | |
カスタム SecurityManager | ![]() | |
拡張のためのデザイン | ![]() | |
安全でない乱数生成 | ![]() | |
安全なコンテキストにおける static 以外の内部クラス | ![]() | |
安全な状況での非最終 clone() | ![]() | |
public static 配列フィールド | ![]() | |
public static 収集フィールド | ![]() | |
セキュリティに考慮が必要な Serializable クラス | ![]() |
シリアライゼーション問題
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
Serializable 宣言されていない Comparator クラス | ![]() | |
readObject() または writeObject() による外部化可能クラス | ![]() | |
public 引数のないコンストラクターを持たない外部化可能クラス | ![]() | |
インスタンスフィールドは readObject() によって初期化されないかもしれません | ![]() | |
readObject() または writeObject() による直列化不可能クラス | ![]() | |
serialVersionUID による直列化不可能クラス | ![]() | |
Serializable クラス内の非 Serializable フィールド | ![]() | |
HttpSession にバインドされた非 Serializable オブジェクト | ![]() | |
ObjectOutputStream に渡される非 Serializable オブジェクト | ![]() | |
readObject() または writeObject() が private を宣言していません | ![]() | |
readResolve() または writeReplace() が protected を宣言していません | ![]() | |
構築できない祖先を持つシリアライズ可能クラス | ![]() | |
readObject() と writeObject() のない直列化可能クラス | ![]() | |
serialVersionUID なしの直列化可能クラス | ![]() | |
非直列化可能外部クラスを持つ直列化可能非 static 内部クラス | ![]() | |
serialVersionUID なしで直列化可能な static 以外の内部クラス | ![]() | |
暗黙的に非 Serializable オブジェクトを格納する Serializable オブジェクト | ![]() | |
serialPersistentFields フィールドが宣言されていません private static final ObjectStreamField[] | ![]() | |
serialVersionUID フィールドが宣言されていません private static final long | ![]() | |
非 Serializable クラスの Transient フィールド | ![]() | |
デシリアライズ時に Transient フィールドが初期化されない | ![]() |
TestNG
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
非変換型のオブジェクト間の assertEquals() | ![]() | |
定数 TestNG アサート引数 | ![]() | |
データプロバイダー問題 | ![]() | |
dependsOnMethods の問題 | ![]() | |
データプロバイダー名の重複 | ![]() | |
テストメソッドの本体で予期しない例外がスローされることはありません | ![]() | |
グループ問題 | ![]() | |
無効なデータプロバイダー戻り型 | ![]() | |
TestNG に変換可能な JUnit テスト | ![]() | |
メッセージがない TestNG アサーション | ![]() | |
誤った assertEquals() 引数 | ![]() | |
古い TestNG 注釈 @Configuration の使用 | ![]() | |
簡略化可能な TestNG アサーション | ![]() | |
TestNG Javadoc は注釈に変換 | ![]() | |
未宣言のテスト | ![]() |
スレッド関連の問題
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
インスタンスデータにロックされた static フィールドへのアクセス | ![]() | |
AtomicFieldUpdater フィールドが static final を宣言していません | ![]() | |
AtomicFieldUpdater の問題 | ![]() | |
await() がループしていません | ![]() | |
対応する signal() がない await() | ![]() | |
ビジー待機 | ![]() | |
System.runFinalizersOnExit() を呼び出す | ![]() | |
Thread.run() を呼び出す | ![]() | |
Thread.setPriority() を呼び出す | ![]() | |
同期中に Thread.sleep() を呼び出す | ![]() | |
オブジェクト構築中に Thread.start() を呼び出す | ![]() | |
Thread.stop() , suspend() または resume() への呼び出し | ![]() | |
Thread.yield() を呼び出す | ![]() | |
notifyAll() の代わりに notify() を呼び出す | ![]() | |
signalAll() の代わりに signal() を呼び出す | ![]() | |
ロックされた状態でネイティブメソッドを呼び出す | ![]() | |
クラスは java.lang.Thread を直接拡張する | ![]() | |
ダブルチェックロック | ![]() | |
空の synchronized ステートメント | ![]() | |
同期コンテキストと非同期コンテキストの両方でアクセスされるフィールド | ![]() | |
デフォルトの run() メソッドでスレッドをインスタンス化する | ![]() | |
獲得されたが安全にロックされていないロック | ![]() | |
同期ブロックを持つメソッドは同期メソッド | ![]() | |
ネストした synchronized ステートメント | ![]() | |
volatile フィールドでの非アトミック操作 | ![]() | |
同期コンテキストでアクセスされる非プライベートフィールド | ![]() | |
スレッドセーフではない静的フィールドアクセス | ![]() | |
java.util.concurrent.locks.Condition オブジェクトに対して notify() または notifyAll() が呼び出されました | ![]() | |
対応する状態変化のない notify() または notifyAll() | ![]() | |
対応する wait() がない notify() | ![]() | |
対応する await() がない signal() | ![]() | |
static 初期化子はサブクラスを参照 | ![]() | |
getClass() での同期 | ![]() | |
static フィールドでの同期 | ![]() | |
this での同期 | ![]() | |
Lock オブジェクトでの同期 | ![]() | |
非 final フィールドでの同期 | ![]() | |
リテラルで初期化されたオブジェクトの同期化 | ![]() | |
ローカル変数またはメソッドパラメーターの同期 | ![]() | |
synchronized 法 | ![]() | |
static final で宣言されていない ThreadLocal フィールド | ![]() | |
ThreadLocalRandom インスタンスが共有されている可能性があります | ![]() | |
無条件 wait() 呼び出し | ![]() | |
synchronized メソッドを非同期メソッドでオーバーライド | ![]() | |
volatile 配列フィールド | ![]() | |
java.util.concurrent.locks.Condition オブジェクトで呼び出された wait() | ![]() | |
wait() がループしていません | ![]() | |
タイムアウトなしの wait() または await() | ![]() | |
同期されていない間の wait() または notify() | ![]() | |
2 つのロックを保持しながら wait() | ![]() | |
対応する notify() がない wait() | ![]() | |
while ループがフィールドでスピン | ![]() |
toString() 問題
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
クラスは toString() メソッドをオーバーライドしません | ![]() | |
toString() メソッドでは使用されていないフィールド | ![]() |
冗長または不要なコード構成
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
単純化できるコンパレーター | ![]() | |
さらなる条件でカバーされている条件 | ![]() | |
switch にブランチが重複しています | ![]() | |
過度のラムダ使用 | ![]() | |
過剰な範囲チェック | ![]() | |
明示的な配列の埋め込み | ![]() | |
手動による min/max の計算 | ![]() | |
同じ式が複数回出現 | ![]() | |
冗長 compare メソッド呼び出し | ![]() | |
冗長 isInstance または cast 呼び出し | ![]() | |
冗長なコレクション操作 | ![]() | |
冗長文字列操作 | ![]() | |
冗長な配列作成 | ![]() | |
冗長なタイプ引数 | ![]() | |
冗長な型キャスト | ![]() | |
StringBuilder は String に置き換えることができます | ![]() | |
変数の型が弱いために発生する不要なキャスト | ![]() | |
不要な break ステートメント | ![]() | |
不要な continue ステートメント | ![]() | |
enum switch ステートメントには不要な default | ![]() | |
不必要にエスケープされた文字 | ![]() | |
不要な return ステートメント | ![]() | |
break ステートメントに不要なラベル | ![]() | |
continue ステートメントに不要なラベル | ![]() |
可視性
インスペクションの名前 | デフォルト状態 | デフォルトの重大度 |
---|---|---|
継承されたフィールドのアクセスは、周囲のコードの要素のアクセスのように見えます | ![]() | |
匿名クラス変数はメソッドを含む変数を隠す | ![]() | |
継承されたメソッドへの呼び出しは、ローカルメソッドへの呼び出しのように見える | ![]() | |
フィールド名はスーパークラスのフィールドを隠す | ![]() | |
内部クラスフィールドは外部クラスフィールドを隠す | ![]() | |
ラムダパラメーターがフィールドを隠す | ![]() | |
ローカル変数はフィールドを隠す | ![]() | |
メソッドはスーパークラスのメソッドをオーバーロードする | ![]() | |
メソッドがアクセスできないスーパークラスのメソッドをオーバーライドする | ![]() | |
スーパークラスの static メソッドをオーバーライドしようとしているメソッド | ![]() | |
パッケージを自分自身にエクスポート / オープンしているモジュール | ![]() | |
アクセスできないクラスの公開 | ![]() | |
パラメーターがフィールドを隠す | ![]() | |
型パラメーターは可視タイプを隠す | ![]() | |
module-info で宣言されていないサービスの使用箇所 | ![]() |
関連ページ:

カスタムインスペクションの作成
カスタムインスペクションを作成するには、検索を構成してテンプレートを置き換える必要があります。IDE はテンプレートに一致するコードを検索し、それをエディターでハイライトします。カスタムインスペクションを作成するためのプラグインを開発することもできます。詳しくは、IntelliJ プラットフォーム...

重複を分析する
IntelliJ IDEA は、重複したコードフラグメントインスペクションを使用して、特定のファイルセット内の反復的なコードブロックを見つけるのに役立ちます。コードを作成または貼り付けて複製を作成すると、IntelliJ IDEA はそれをすぐにハイライトして、迅速な修正を提案します。インスペクショ...