Stanford CS106A:Eclipse突出显示了我的方法声明,代码无法编译

时间:2014-11-10 20:49:04

标签: java eclipse serialization

这是代码。 Eclipse强调了FindRange方法。错误提示

  

可序列化的类FindRange未声明static final serialVersionUID类型的long字段。

任何帮助?

以下是代码:

/*
 * File: FindRange.java
 * Name: 
 * Section Leader: 
 * --------------------
 * This file is the starter file for the FindRange problem.
 */

import acm.program.*;

public class FindRange extends ConsoleProgram {
    public void run() {
        /* You fill this in */
    }
}

1 个答案:

答案 0 :(得分:0)

您的类扩展的ConsoleProgram类必须声明为implements Serializable;因此,您的FindRange课程也是SerializableSerializable类的目的是允许将实例转换为可以通过网络发送或保存到磁盘或类似字节的字节流,然后重新解释以构建实例。

Serializable类应该声明

public static final long serialVersionUID = ...;

每次对类进行非平凡的更改时都应该更改,以确保在某处保存的旧实例不会以有问题的方式反序列化。

如果这是作业,那么请忽略它。如果您的教授出于某种原因对您的答案使用序列化,那么它将在没有版本控制的情况下正常工作,因为他只会运行一次,通过某种类型的测试工具将事件抛弃之后。 (如果他真的需要你申报版本号,他已经告诉过你了。)如果你想添加它所抱怨的字段,那么这样做:它也不会做任何伤害。

但是你说Eclipse拒绝编译文件。应该不是这样的:它应该发出警告,但不要拒绝编译它。 (我想你可能已经改变了Eclipse设置,把它变成了错误而不是警告,但这似乎不太可能。)