我在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);
}
}
应该是非常简单的事情。但我卡住了! 任何帮助表示赞赏。
答案 0 :(得分:3)
您已定义了自己的EmptyStackException
,但Java提供了java.util.EmptyStackException
和its only constructor takes no arguments,这意味着您认为使用自己的EmptyStackException
的代码实际上正在使用{{ 1}}。
要扩展java.util.EmptyStackException
,请定义自己的:
EmptyStackException
在构造函数中,调用public MyEmptyStackExceptionWithMessage extends EmptyStackException {
并存储您自己的消息。
答案 1 :(得分:1)
您似乎正在尝试用自己的一个替换现有的EmptyStackException
类;这总是一个非常糟糕的想法(并且在许多Java环境中,不可能。)可能会出现编译错误,因为尽管您正在尝试构造类的实例,但Java编译器实际上正在尝试实例化{{1}确实没有单参数构造函数。基本上,如果您需要定义自己的异常类型,请选择平台类尚未使用的名称 - 您将避免很多麻烦。如果您的目标是真正替换Java API类:放弃。它不会发生。