19

クラスを拡張するクラスを作成しましたがException、Eclipseでこの警告が表示されました

シリアル化可能なクラスPhoneAlreadyExistsは、long型の静的なfinalserialVersionUIDフィールドを宣言しません

削除する方法を教えてください?

public class PhoneAlreadyExists extends Exception {
    public PhoneAlreadyExists() {
        // TODO Auto-generated constructor stub
        super();
    }

    PhoneAlreadyExists(String message) {
        super(message);
    }

}
4

6 に答える 6

22

Eclipse の動作をグローバルに変更するには: [設定] -> [Java] -> [コンパイラ] -> [エラー/警告] -> [潜在的なプログラミングの問題] に移動します。この特定の問題のエントリがあります。特定のプロジェクトでも変更できます。

それはあなたの質問に答えますが、警告レベルのままにして、不足しているフィールドを追加することをお勧めします。または、SuppressWarnings 注釈を、シリアル化されないため、実際にはフィールドを必要としないシリアル化可能なクラスに追加します。

于 2013-02-23T21:26:23.720 に答える
11

クラスに注釈を追加して、@SuppressWarnings("serial")その警告を無視します

于 2013-02-23T21:25:27.130 に答える
9

long型の静的なfinalserialVersionUIDフィールドを宣言する必要があります。

SerializableJavaのAPIを調べてください。例外は実装する必要がSerializableあり、SerializableクラスにはserialVersionUID:が必要です。

public static final long serialVersionUID = 1L;

クラスに互換性のない変更を加えるときはいつでも、このバージョンを増やしてください。

于 2013-02-23T21:23:36.873 に答える
2

「The serializable class ClASSNAME does not declare a static final serialVersionUID......」という警告を無視するには、eclipse* 内で次のようにします。

  1. Window-Preferences-Java-Compiler-Errors/Warnings をクリックします。
  2. 「潜在的なプログラミングの問題」をクリックします
  3. 「serialVersionUID のないシリアライズ可能なクラス」までスクロールします。
  4. 「無視」を選択
  5. [適用] をクリックします
  6. [OK] をクリックします。

Eclipse IDE を保存して閉じます。Eclipse を再度開くと、これらの特定の警告は表示されなくなります。

*このサンプル ソリューションでは、Java 開発者向けの Eclipse IDE を使用しています - バージョン: Mars.2 Release (4.5.2)

于 2016-03-29T10:45:41.070 に答える
1

ほとんどの場合、serialversionUID を追加することをお勧めしますが、Eclipse は、シリアライズされないすべてのスイング派生クラスに対して警告を出します。設定 -> Java -> コンパイラ -> エラー/警告 -> 潜在的なプログラミングの問題で設定を変更しようとしましたが、効果はありませんでした。したがって、最善の解決策は、シリアル化されない各クラスの警告を抑制することだと思います。または、歯を食いしばって警告を無視してください。

于 2015-03-26T13:01:21.380 に答える