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

Java 对于ShoppingCart类型,未定义clear()方法,java,jsp,Java,Jsp,我正在通过JSP实现一个购物网站。我有一个名为ShoppingCart的Java对象和一个名为Item的对象。在ShoppingCart中有一个向量,用于保存物品对象。其思想是,当我调用addItem()方法时,我使用:- cart.addItem(name, image, price, details); 确保ShoppingCart已声明:- ShoppingCart cart = new ShoppingCart("file_path_to_file"); 而附加项的内容是:- pu

我正在通过JSP实现一个购物网站。我有一个名为
ShoppingCart
的Java对象和一个名为Item的对象。在
ShoppingCart
中有一个向量,用于保存物品对象。其思想是,当我调用
addItem()
方法时,我使用:-

cart.addItem(name, image, price, details);
确保ShoppingCart已声明:-

ShoppingCart cart = new ShoppingCart("file_path_to_file"); 
附加项
的内容是:-

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方法仅将以下内容保存到对象文件:-

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文件:/project/cart.jsp的第108行出现错误 对于ShoppingCart类型,未定义clear()方法


有人能帮我解决这个问题吗?

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

一个有点像样的IDE和一个有点像样的服务器插件将自动完成这项工作。

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


Java不是,而是一种编译的编程语言,它的程序在执行之前被转换成可执行的形式。我刚刚在Eclipse中解决了一个非常类似的问题。我取消选择了“Project->Build Automatically”选项,然后单击“Project->Clean”并清理项目,但错误不会消失。最后,在单击“Project->Clean”后弹出的对话框中,我取消选择了“立即启动构建”选项并进行了清理

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

在某一点上,我已经注释掉了有问题的行并保存了,而Eclipse仍然在该行上报告错误我不知道这是一个Eclipse bug还是一个底层的工具链bug,但它肯定不是在写东西


这是EclipseHeliosServiceRelease2和JavaSE6的目标。在Windows XP下运行。

查看
ShoppingCart
类和
/project/cart.jsp
的完整源代码可能会有所帮助。您上面给出的代码没有明显的问题。谢谢大家,我已经重复地重新编译了代码,但是服务器重新引导解决了问题!谢谢你的帮助!谢谢大家,我重复地重新编译了代码,但运气不好,不过服务器重新启动解决了问题!谢谢你的帮助!不客气。是的,更改后您肯定需要重新部署/重新启动webapp/服务器。您使用的是像Eclipse这样的IDE吗?您可能需要在服务器设置中启用“自动发布”和/或“热部署”,具体取决于所使用的服务器插件。然后事情会自动进行。既然你是新来的,别忘了标出最有用的答案。另请参阅。我正在自己的机器上使用Apache Tomcat和记事本++进行编辑。对此感到抱歉,我希望我已经完成了我现在应该在这里做的一切?记事本++?对,艰难的路。做得好:“一直保持编码,直到你从上到下理解java Web开发是如何工作的,直到它变得太无聊和常规,然后考虑切换到IDE,在那里你基本上只需要做CTRL+S。