-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

该程序可能什么也不显示,因为没有添加任何组件,也没有在其中绘制任何内容。但是,除非您使用其中一个创建不可见的棘手 IDEmain()或除此之外还有另一个类MyRobot,否则我看不到此代码如何运行。


顺便说一句 - 忘记在 Eclipse 中提到“快速修复”是:

  1. 双击“问题”选项卡中的警告,以集中问题类。

  2. 输入Ctrl 1“快速修复”

  3. 选择下面出现的第一个或第二个选项。

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 回答