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

时间:2011-05-12 18:02:48

标签: java jsp

我正在通过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()未定义

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

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

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

Java不是interpreted language,而是一种编译的编程语言,其程序在执行之前会转换为可执行的形式。

答案 2 :(得分:0)

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

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

有一次,我已经注意到有问题的行并保存了, Eclipse仍在报告该行的错误!!! 我不知道这是Eclipse错误还是底层错误工具链错误,但绝对不是写东西。

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