-3
import acm.graphics.*;
import acm.program.*;
import java.awt.*;

      public class MyRobot extends GraphicsProgram {
        }
 }

それは私が書いたコードで、extends GraphicsProgramorを置くたびにConsoleProgramそれが教えてくれます

The serializable class MyRobot does not declare a static final serialVersionUID field of type long.   

また、この警告でプログラムを実行しようとすると、空白のプログラムが表示されます。

誰でもこれらの問題で私を助けることができますか?

4

3 に答える 3

3

これは、クラスがSerializableであるためです。

クラスの直列化可能性は、java.io.Serializableインターフェースを実装するクラスによって有効になります。このインターフェースを実装しないクラスは、シリアル化または逆シリアル化された状態を持ちません。シリアライズ可能なクラスのすべてのサブタイプは、それ自体がシリアライズ可能です。シリアル化インターフェースにはメソッドやフィールドがなく、シリアル化可能であることのセマンティクスを識別するためだけに機能します。

于 2012-03-24T22:11:08.173 に答える
1

コンポーネントが追加されておらず、何も描画されていないため、プログラムはおそらく何も表示しません。しかし、目に見えないものを作成するトリッキーな IDE のいずれかを使用していないか、main()または 以外MyRobotに別のクラスがない限り、このコードがどのように実行されるかはわかりません。


ところで-Eclipseでこれに対する「クイックフィックス」について言及するのを忘れていました:

  1. [問題] タブで警告をダブルクリックして、問題のクラスにフォーカスします。

  2. Ctrl 1「クイック修正」のタイプ

  3. 下に表示される最初または 2 番目のオプションを選択します。

Eclipse SerrialVersionUID クイック フィックス

于 2012-03-24T21:50:26.273 に答える
1

Javaに親切にしてください。Serializable インターフェイスを持つクラスを使用します。彼らはあなたを必要としていdeclare a static final serialVersionUID field of type longます。彼らはあなたにそれをするように頼みます。とても親切に、declare a static final serialVersionUID field of type long. :-)。そして、初心者にとって+1は悪い質問ではありません.

于 2012-03-24T22:29:07.767 に答える