1. ホーム
  2. ジャワ

ファインバグタイプ

2022-02-08 03:38:04


概要

OS: 例外が発生すると、メソッドがストリームを閉じるのに失敗することがある。 MS: フィールドは final と package protected の両方でなければならない <テーブル 説明 カテゴリー BC: Equalsメソッドは、引数の型について何も仮定してはいけません。 バッドプラクティス BIT: ビット演算の符号をチェックする バッドプラクティス CN: クラスはCloneableを実装しているが、cloneメソッドを定義または使用していない。 バッドプラクティス CN: clone メソッドが super.clone() を呼び出さない。 バッドプラクティス CN: クラスはclone()を定義しているが、Cloneableを実装していない バッドプラクティス CNT。既知の定数のおおまかな値を発見 バッドプラクティス Co: 抽象クラスが共変量compareTo()メソッドを定義しています。 バッドプラクティス Co: compareTo()/compare() で float または double 値が正しく処理されない。 悪い習慣 Co: compareTo()/compare() は Integer.MIN_VALUE を返します。 バッドプラクティス Co: Covariant compareTo() メソッドの定義 バッドプラクティス DE: メソッドが例外を落とすかもしれない 悪い習慣 DE: メソッドが例外を無視する可能性がある 悪い習慣 DMI: Entry オブジェクトの再利用により、エントリ セットの要素の追加に失敗する場合があります。 バッドプラクティス DMI: ランダムに作成され、一度だけ使用されるオブジェクト バッドプラクティス DMI: コレクションをクリアするために removeAll を使用しない バッドプラクティス Dm: メソッドはSystem.exit(...)を呼び出します。 バッドプラクティス Dm: メソッドは危険なメソッド runFinalizersOnExit を呼び出します。 悪い習慣 ES: または! =を用いた文字列パラメータの比較 バッドプラクティス ES: または! =を用いた文字列オブジェクトの比較 バッドプラクティス Eq: 共変量 equals() メソッドを定義する抽象クラス バッドプラクティス Eq: 互換性のないオペランドに対する等号チェック バッドプラクティス Eq: クラスは compareTo(...) を定義し、Object.equals() を使用します。 バッドプラクティス Eq: サブタイプではequalsメソッドは失敗します。 バッドプラクティス Eq: Covariant equals() メソッドの定義 バッドプラクティス FI: 空のファイナライザは削除する必要があります バッドプラクティス FI: ファイナライザーの明示的な呼び出し バッドプラクティス FI: ファイナライザはフィールドをNULLにする バッドプラクティス FI: ファイナライザはフィールドのみをNULLにする バッドプラクティス FI: ファイナライザがスーパークラスのファイナライザを呼び出さない バッドプラクティス FI: ファイナライザがスーパークラスのファイナライザを無効化する バッドプラクティス FI: ファイナライザはスーパークラスのファイナライザを呼び出すだけで、何もしない 悪い習慣 FS: フォーマット文字列には、%n を使用する必要があります。 バッドプラクティス GC: ジェネリックコールでチェックされていないタイプ バッドプラクティス HE: クラスは equals() を定義していますが、hashCode() は定義していません。 バッドプラクティス HE: クラスは equals() を定義し、Object.hashCode() を使用します。 バッドプラクティス HE: クラスは hashCode() を定義していますが、equals() は定義していません。 バッドプラクティス HE: クラスは hashCode() を定義し、Object.equals() を使用します。 バッドプラクティス HE: クラスは equals() を継承し、Object.hashCode() を使用します。 バッドプラクティス IC: スーパークラスは初期化時にサブクラスを使用する 悪い習慣 IMSE: IllegalMonitorStateExceptionの怪しい捕らえ方 悪い習慣 ISC: 静的メソッドのみを提供するクラスの不要なインスタンス化 悪い習慣 それは Iterator next() メソッドは NoSuchElementException をスローできません。 悪い習慣 J2EE: 非シリアライズ可能なオブジェクトの HttpSession への格納 バッドプラクティス JCIP:イミュータブルクラスのフィールドはfinalでなければならない バッドプラクティス ME: パブリック enum メソッドは無条件にそのフィールドを設定する バッドプラクティス ME: Enumフィールドはパブリックでミュータブルです。 悪い習慣 NP: ブール値の戻り値を持つメソッドが明示的にヌルを返す バッドプラクティス NP: クローンメソッドは null を返すことがあります。 バッドプラクティス NP: equals() メソッドが null 引数をチェックしない。 悪い習慣 NP: toString メソッドは null を返すことがあります。 バッドプラクティス Nm: クラス名は大文字で始めること 悪い習慣 Nm: クラスはExceptionから派生したものではありません。 悪い習慣 Nm: 紛らわしいメソッド名 悪い習慣 Nm: フィールド名は小文字で始める必要があります バッドプラクティス Nm: Java の後のバージョンでキーワードとなる識別子の使用 バッドプラクティス Nm: Java の後のバージョンでキーワードとなる識別子の使用 バッドプラクティス Nm: メソッド名は小文字で始める必要があります バッドプラクティス Nm: クラス名は実装されたインターフェイスの単純な名前をシャドウしてはならない バッドプラクティス Nm: クラス名はスーパークラスの単純な名前をシャドウしてはいけない 悪い習慣 Nmです。非常にわかりにくいメソッド名(ただし意図的なものである可能性あり) 悪い習慣 Nm: パラメータのパッケージが正しくないため、メソッドがスーパークラスのメソッドをオーバーライドしない バッドプラクティス ODR: データベースリソースのクローズに失敗する可能性があります。 バッドプラクティス ODR: メソッドが例外でデータベースリソースを閉じるのに失敗する可能性がある バッドプラクティス OS:メソッドがストリームを閉じるのに失敗する可能性があります バッドプラクティス バッドプラクティス PZ: イテレータでエントリ・オブジェクトを再利用しない バッドプラクティス RC: 定数との疑わしい参照比較 バッドプラクティス RC: 疑わしいブール値の参照比較 バッドプラクティス RR: InputStream.read()の結果を無視するメソッドです。 悪い習慣 RR: InputStream.skip()の結果を無視するメソッド。 バッドプラクティス RV: compareTo()/compare() の結果を否定する。 バッドプラクティス RV: 例外的な戻り値を無視するメソッド バッドプラクティス SI: 静的イニシャライザーは、すべての静的最終フィールドが割り当てられる前にインスタンスを作成します。 バッドプラクティス SW: 特定のSwingメソッドはSwingスレッドで呼び出す必要があります。 バッドプラクティス Se: シリアライズ可能なクラスの非トランジェントな非シリアライズ可能なインスタンスフィールド バッドプラクティス Se: シリアライズ不可能なクラスがシリアライズ可能なインナークラスを持っている 悪い習慣 Se: シリアライズ可能なクラスのインスタンスフィールドに格納されたシリアライズ不可能な値 バッドプラクティス Se: コンパレータがSerializableを実装していない バッドプラクティス Se: シリアライザブルインナークラス 悪い習慣 Se: serialVersionUID は最終版ではありません。 悪い習慣 Se: serialVersionUID が長くない。 悪い習慣 Se: serialVersionUID は静的ではありません。 悪い習慣 Se: クラスは Serializable だが、そのスーパークラスは void コンストラクタを定義していない。 悪い習慣 Se: クラスは外部化可能だが、void コンストラクタが定義されていない 悪い習慣 Se: readResolve メソッドは、戻り値の型が Object であるように宣言する必要があります。 バッドプラクティス Se: デシリアライゼーションで設定されない一時的なフィールド。 バッドプラクティス SnVIです。クラスはSerializableだが、serialVersionUIDが定義されていない 悪い習慣 UI。クラスが拡張されている場合、GetResource の使用は安全でない可能性があります。 バッドプラクティス BC: インポッシブルキャスト 正しさ BC: 不可能なダウンキャスト 正しさ BC: toArray() の結果のダウンキャストができない 正しさ BC: instanceof は常に false を返します。 正しさ BIT:符号付きバイト値のビット加算 正しさ BIT: 非互換のビットマスク 正しさ BIT: ((...) & 0) == 0かどうかを確認する。 正しさ BIT: 非互換のビットマスク 正しさ BIT:符号付きバイト値のビット毎OR 正しさ BIT: ビット演算の符号をチェックする 正しさ BOAです。スーパークラス Adapter で実装されたメソッドをクラスが誤ってオーバーライドする 正しさ BSHIFT: シフト操作の解析に問題がある可能性がある 正しさ BSHIFT: 32ビットintを-31から31の範囲外の量だけシフトしたもの 正しさ DLSです。Returnステートメントでの無駄なインクリメント 正しさ DLS。クラスリテラルのデッドストア 正しさ DLS。上書きされたインクリメント 正しさ DMI: 逆方向のメソッド引数 正しさ DMI: 月の定数値が不正 正しさ DMI: 正確に表現されていない double から構築された BigDecimal 正しさ DMI: hasNext メソッドは next を呼び出します。 正しさ DMI: コレクションは自分自身を含むべきではない 正しさ DMI: D'oh! 意味不明なメソッド呼び出し 正しさ DMI: 配列に対するhashCodeの呼び出し 正しさ DMI: Double.longBitsToDoubleはint型に対して実行されます。 正しさ DMI: コレクションへの空白の呼び出し 正しさ Dm: 実行時保持のないアノテーションの存在を確認するためにリフレクションを使用できない 正しさ Dm: ScheduledThreadPoolExecutor の最大プールサイズを変更しようとする試みが失敗しました。 正しさ Dm: ゼロコアスレッドでのScheduledThreadPoolExecutorの作成 正しさ Dm: EasyMock メソッドへの無駄な/空白の呼び出し 正しさ Dm: Math.maxとMath.minの組合せが正しくない。 正しさ EC: equals() は配列と非配列を比較するために使用されます。 正しさ EC: 配列に対する equals() の呼び出し、これは == と同等です。 正しさ EC: equals(...) は互換性のない配列の比較に使用されます。 正しさ EC: equals(null)への呼び出し 正しさ EC: 関連性のないクラスとインタフェースを比較するequals()の呼び出し 正しさ EC: 異なるインターフェースタイプを比較するequals()の呼び出し 正しさ EC: 異なる型を比較するequals()の呼び出し 正しさ EC:ポインタの等価性を利用した異なる型の比較 正しさ Eq: equals メソッドは常に false を返す 正しさ Eq: equals メソッドは常に真を返す 正しさ Eq: equals メソッドはクラスオブジェクトではなく、クラス名を比較します。 正しさ Eq: 列挙型に対して定義された共変量 equals() メソッド 正しさ Eq: equals(Object)をオーバーライドしないequals()メソッドが定義されています。 正しさ Eq: Object.equals(Object) をオーバーライドしない equals() メソッドが定義されている。 正しさ Eq: equals メソッドはスーパークラスの equals を上書きするため、対称でない可能性がある 正しさ Eq: 共変量 equals() メソッド定義、Object.equals(Object) 継承 正しさ FE: NaNと等しいかどうかの運命的なテスト 正しさ FS: 引数で渡されたフォーマット文字列プレースホルダと互換性がありません。 正しさ FS: 与えられた引数の型が書式指定子と一致しません。 正しさ FS: printf スタイルのフォーマットが期待される MessageFormat が提供される。 正しさ FS: フォーマット文字列で実際に使用されるよりも多くの引数が渡されます。 正しさ FS: 不正なフォーマット文字列 正しさ FS: 欠落している引数を参照するフォーマット文字列 正しさ FS: フォーマット文字列の前の引数がない 正しさ GC:ジェネリックパラメータとメソッド引数の関係なし 正しさ HE: ハッシュ化された構成でハッシュ化されていないクラスを使用することを宣言するシグネチャ 正しさ HE: hashCode() メソッドを持たないクラスをハッシュ化したデータ構造で使用する。 正しさ ICAST: int 値を long に変換し、絶対時間として使用する。 正しさ ICAST 積分値を double にキャストして Math.ceil に渡す。 正しさ ICAST: int 値を float にキャストして Math.round に渡す。 正しさ IJU:実行メソッド内のJUnitアサーションは、JUnitに気づかれません。 正しさ IJU: テストケースは不正なスイートメソッドを宣言している 正しさ IJU: テストケースにはテストがない 正しさ IJU: super.setUp()を呼び出さないsetUpを定義するTestCase 正しさ IJU: テストケースは非静的なスイートメソッドを実装しています。 正しさ IJU: super.tearDown()を呼び出さないtearDownが定義されているテストケース 正しさ IL: コレクションが自分自身に追加される 正しさ IL: 見かけ上の無限ループ 正しさ IL: 見かけ上の無限再帰ループ 正しさ IM: 整数の余りの結果の整数倍 正しさ INT: int値とlong定数の不正な比較 正しさ INT: 負の定数またはゼロと非負の値の比較に失敗しました。 正しさ INT: 符号付きバイトの不正な比較 正しさ IO: オブジェクト出力ストリームに追加するための運命的な試み 正しさ IP: パラメータはメソッドに入った時点で死んでいるが、上書きされる 正しさ MF: クラスはスーパークラスのフィールドをマスクするフィールドを定義する 正しさ MF: フィールドを見えなくする変数を定義するメソッド 正しさ NP: Nullポインタの非参照 正しさ NP: 例外パス上のメソッドでの Null ポインタの逆参照 正しさ NP: メソッドは NULL 引数をチェックしません。 正しさ NP: close() は常に null である値に対して実行されました。 正しさ NP: Null値を参照することが保証されています。 正しさ NP: 値はヌルであり、例外パスで再参照されることが保証されています。 正しさ NP: NULLでないフィールドは初期化されません。 正しさ NP: メソッド呼び出しで、NULLでないパラメータにNULLを渡す 正しさ NP: メソッドはnullを返すことがありますが、@Nonnullと宣言されています。 正しさ NP: 既知の NULL 値が、ある型のインスタンスであるかどうかをチェックします。 正しさ NP: ヌルポインターデリファレンスの可能性 正しさ NP: 例外パス上のメソッドで NULL ポインタが参照される可能性があります。 正しさ NP: メソッド呼び出しで、非 null パラメータに null が渡される。 正しさ NP: メソッド呼び出しで、非 null パラメータに null が渡される。 正しさ NP: 非仮想的なメソッド呼び出しは、非NULLパラメータにNULLを渡します。 正しさ NP: オプションの戻り値の型を持つメソッドは、明示的にヌルを返します。 正しさ NP: NULL 値を @Nonnull アノテーションの付いたフィールドに格納する。 正しさ NP: 未書き込みフィールドの読み取り 正しさ Nm: クラスはequal(Object)を定義していますが、equal(Object)にすべきですか? 正しさ Nm: クラスはhashcode()を定義していますが、hashCode()にすべきですか? 正しさ Nm: クラスは tostring() を定義していますが、toString() にすべきですか? 正しさ Nm: 見かけ上のメソッド/コンストラクタの混乱 正しさ Nm: 非常に紛らわしいメソッド名 正しさ Nm: パラメータのパッケージが正しくないため、メソッドがスーパークラスのメソッドをオーバーライドしない 正しさ QBA: メソッドは、ブール式のブール値リテラルを代入する 正しさ RANGE: 配列のインデックスが範囲外である 正しさ RANGE: 配列の長さが範囲外である 正しさ RANGE: 配列のオフセットが範囲外です。 正しさ RANGE: 文字列インデックスが範囲外です。 正しさ RC: 不審な参照元比較 正しさ RCN: 過去に参照された値のヌルチェック 正しさ RE: 正規表現の構文が無効です 正しさ RE: 正規表現に使用されるFile.separator 正しさ RE: ". " または "|" は正規表現に使用されます。 正しさ RV: 0から1のランダムな値を整数の0に強制する。 正しさ RV: 符号付き32ビットハッシュコードの絶対値を計算する試みが間違っている 正しさ RV: 符号付き乱数の絶対値計算の試みが間違っている 正しさ RV:compareToが返す特定の値に対するコードチェック 正しさ RV:例外が発生し、スローされずにドロップされる 正しさ RV: 戻り値を無視するメソッド 正しさ RpC: 繰り返される条件テスト 正しさ SA: フィールドの自己割り当て 正しさ SA: フィールドと自分自身との比較 正しさ SA: フィールドを含む無意味な自己計算 (例: x & x) 正しさ SA: フィールドへの割り当てではなく、ローカルへの自己割り当て 正しさ SA: 値と自分自身との比較 正しさ SA: 変数を含む無意味な自己計算 (例: x & x) 正しさ SF: スイッチステートメントのフォールスルーによるデッドストア 正しさ SF: スイッチステートメントがスローにフォールスルーすることによるデッドストア 正しさ SIC: 非静的な内部クラスとスレッドローカルの致命的な抱擁 正しさ SIO: instanceof 演算子による不要な型チェックが行われる 正しさ SQLです。メソッドがインデックス 0 のプリペアド ステートメント パラメータにアクセスしようとしました。 正しさ SQLです。メソッドがインデックス 0 の結果セットフィールドにアクセスしようとしました。 正しさ STI: currentThread() 呼び出しの不要な使用、interrupted() 呼び出しのため。 正しさ STI: スレッドインスタンスで起動される静的 Thread.interrupted() メソッド 正しさ Se: シリアライゼーションが機能するためには、メソッドはプライベートである必要があります。 正しさ Se: readResolve メソッドは静的メソッドとして宣言してはならない。 正しさ TQ:型式修飾子を持つものとして注釈された値で、その修飾子を持つべきではない値が要求される場合に使用される。 正しさ TQ:互換性のない型修飾子を持つ値の比較 正しさ TQ:型修飾子を持たないかもしれない値は、常に型修飾子を必要とする方法で使用されます。 正しさ TQ:型修飾子を持つ可能性のある値は、常にその型修飾子を持つことを禁止する方法で使用されます。 正しさ TQ:型式修飾子を持たない値としてアノテーションされ、その修飾子を持つ値が要求される場合に使用される。 正しさ TQ:型式修飾子を持たない値で、値が型式修飾子を持つことが要求される場合に使用される。 正しさ UMAC。匿名クラスで定義された呼び出し不可能なメソッド 正しさ UR: コンストラクタ内のフィールドの初期化されていない読み取り 正しさ UR: スーパークラスのコンストラクタから呼び出されたフィールドメソッドの未初期化リード 正しさ useless_string: 無名配列に対する toString の呼び出し 正しさ useless_string: 配列に対する toString の呼び出し 正しさ useless_string: フォーマット文字列を使用して無駄な方法でフォーマットされた配列 正しさ UwF: フィールドはNULLにのみ設定されます。 正しさ UwF: 未執筆のフィールド 正しさ VA: 関数に渡されるプリミティブ配列で、可変数のオブジェクト引数を想定している 正しさ LG: OpenJDKの弱い参照により、ロガーの変更が失われる可能性があります。 実験的 OBL:メソッドがストリームまたはリソースのクリーンアップに失敗する可能性があります。 実験的 OBL: チェックされた例外で、メソッドがストリームまたはリソースのクリーンアップに失敗する可能性があります。 実験的 Dm: 呼び出されたメソッドのロケールパラメータ化されたバージョンを使用することを検討してください。 国際化 Dm: デフォルトエンコーディングへの依存 国際化 DP: クラスローダーはdoPrivilegedブロックの内部でのみ作成する必要があります。 悪意のあるコードの脆弱性 DP: doPrivileged ブロック内でのみ起動されるべきメソッドが起動されました。 悪質なコードの脆弱性 EI: ミュータブルオブジェクトへの参照を返すことで、内部表現を公開することができる。 悪意のあるコードの脆弱性 EI2: 変動可能なオブジェクトへの参照を組み込んで内部表現を公開してもよい。 悪意のあるコードの脆弱性 FI: ファイナライザはpublicではなくprotectedであるべき 悪意のあるコードの脆弱性 MS: 変動可能なオブジェクトを静的フィールドに格納することで、内部の静的状態を公開することができる。 悪意のあるコードの脆弱性 MS: Field isn't final and can't be protected from malicious code. 悪質なコードの脆弱性 MS: Public static method may expose internal representation by returning array 悪意のあるコードの脆弱性 悪意のあるコードの脆弱性 MS: フィールドはミュータブルアレイ 悪意のあるコードの脆弱性 MS: フィールドはミュータブルコレクション 悪意のあるコードの脆弱性 MS: Field is mutable collection which should be package protected. 悪意のあるコードの脆弱性 MS: フィールドはミュータブルハッシュテーブルです。 悪意のあるコードの脆弱性 MS: フィールドはインターフェイスから移動し、パッケージで保護されるべきである 悪質なコードの脆弱性 MS: フィールドはパッケージで保護する必要があります 悪意のあるコードの脆弱性 MS: Field isn't final but should be 悪意のあるコードの脆弱性 MS: Field isn't final but should be refactored to be so. 悪意のあるコードの脆弱性 AT: 同時実行抽象化機能の呼び出しのシーケンスはアトミックでない可能性があります。 マルチスレッドでの正しさ DC: フィールドのダブルチェックの可能性 マルチスレッドでの正しさ DC: 初期化されたオブジェクトの一部が露出する可能性があります。 マルチスレッドでの正しさ DL: ブール値での同期 マルチスレッドでの正しさ DL: 箱型プリミティブの同期化 マルチット