对于ShoppingCart类型,方法clear()未定义

我正在通过JSP实现一个购物网站。 我有一个名为ShoppingCart的Java对象和一个名为Item的对象。 在ShoppingCart有一个包含Item对象的向量。 我的想法是当我调用addItem()方法时,我使用: –

 cart.addItem(name, image, price, details); 

确保ShoppingCart 已经宣布: –

 ShoppingCart cart = new ShoppingCart("file_path_to_file"); 

addItem的内容是: –

 public void addItem(String name, String image, String price, String detail) throws IOException { items.add(new Item(name, image, price, detail)); this.saveMe(); } 

其中items是向量。 这绝对没问题 。 但是,我现在创建了一个名为clear的新方法: –

 public void clear() throws IOException { items.clear(); this.saveMe(); } 

saveMe方法只保存到一个Object文件: –

 private void saveMe() throws IOException { FileOutputStream fos = new FileOutputStream(this.filename); ObjectOutputStream oos = new ObjectOutputStream(fos) oos.writeObject(this.items); oos.close(); } 

当我使用以下方法调用clear方法时: –

 cart.clear(); 

我收到错误消息: –

在jsp文件中的行:108处发生错误:/project/cart.jsp对于ShoppingCart类型,未定义方法clear()

任何人都可以帮我解决这个问题吗?

如果新添加了该方法并且您收到此错误,那么您显然仍在使用缺少类路径中的方法的旧版本的类。 您需要保存源代码文件,重新编译/重建类/项目,重新部署项目并重新启动服务器以使新更改生效。

有点像样的服务器插件的IDE会自动地做到这一点。

尝试(重新)编译代码 ,将其部署到服务器,然后打开.jsp页面。 每次在java代码中进行更改时都要这样做,而不是html代码。

Java不是解释语言 ,而是编译的编程语言,其程序在执行之前被转换为可执行的forms。

我只是在Eclipse中遇到一个非常类似的问题。 我取消选择“Project-> Build Automatically”选项,我点击“Project-> Clean”并清理项目,但错误不会消失。 最后,在单击“Project-> Clean”后弹出的对话框中,我取消选择“立即开始构建”选项并进行清理。

然后它最终“真正”清理了项目并清除了错误。 然后我开始构建,一切都很好。

有一次,我已经注意到了违规行并保存了,而且Eclipse仍在报告该行的错误! 我不知道这是一个Eclipse bug还是一个潜在的工具链错误,但它肯定不是写的东西。

这是Eclipse Helios Service Release 2和Java SE 6目标。 在Windows XP下运行。