我只是在Java中为EmptyStackException添加了扩展以显示错误消息。我已将此文件放在同一软件包下,但出现错误:

"The constructor EmptyStackException(String) is undefined"


EmptyStackException.java:

package mypackage;

public class EmptyStackException extends RuntimeException{
  private static final long serialVersionUID = 1L;
  public EmptyStackException(String message){
      super(message);
   }
}


应该很简单。但是我被卡住了!
任何帮助表示赞赏。

最佳答案

您已经定义了自己的EmptyStackException,但是Java提供了java.util.EmptyStackExceptionits only constructor takes no arguments,这意味着您认为使用自己的EmptyStackException的代码实际上正在使用java.util.EmptyStackException

要扩展EmptyStackException,请定义您自己的:

public MyEmptyStackExceptionWithMessage extends EmptyStackException {


在构造函数中,调用super()并存储您自己的消息。

10-05 22:44