Java 实现一种计算数字阶乘的方法,例外
我真的不理解这个错误。提前感谢。您将Java 实现一种计算数字阶乘的方法,例外,java,exception,Java,Exception,我真的不理解这个错误。提前感谢。您将FakultaetNichtDefiniertException类定义为fakultaet1的内部类,这意味着您只能在提供封闭的fakultaet1类的实例时创建它的实例。这没有多大意义 您可以将exception类移出fakultaet1,或者使其成为嵌套类(静态),而不需要封闭实例: Exception in thread "main" java.lang.Error: Unresolved compilation problem: No enclo
FakultaetNichtDefiniertException
类定义为fakultaet1
的内部类,这意味着您只能在提供封闭的fakultaet1
类的实例时创建它的实例。这没有多大意义
您可以将exception类移出fakultaet1
,或者使其成为嵌套类(静态),而不需要封闭实例:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
No enclosing instance of type fakultaet1 is accessible. Must qualify the
allocation with an enclosing instance of type fakultaet1 (e.g. x.new A()
where x is an instance of fakultaet1).
at klausur_ws1718.fakultaet1.fakultaet(fakultaet1.java:8)
at klausur_ws1718.fakultaet1.main(fakultaet1.java:29)
您将
fakultaetnichdefiniertexception
类定义为fakultaet1
的内部类,这意味着您只能在提供封闭的fakultaet1
类的实例时创建它的实例。这没有多大意义
您可以将exception类移出fakultaet1
,或者使其成为嵌套类(静态),而不需要封闭实例:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
No enclosing instance of type fakultaet1 is accessible. Must qualify the
allocation with an enclosing instance of type fakultaet1 (e.g. x.new A()
where x is an instance of fakultaet1).
at klausur_ws1718.fakultaet1.fakultaet(fakultaet1.java:8)
at klausur_ws1718.fakultaet1.main(fakultaet1.java:29)
您的fakultaetnichdefiniertexception类是fakultaet1类的内部类。如果范围中没有可用的封闭类实例,则无法实例化内部类的对象。 一种可能的解决方案是使内部类保持静态。 另一种解决方案是将内部类定义为普通类,位于封闭类之外
您的FakultAetNichtDefinierException类是fakultaet1类的内部类。如果范围中没有可用的封闭类实例,则无法实例化内部类的对象。 一种可能的解决方案是使内部类保持静态。 另一种解决方案是将内部类定义为普通类,位于封闭类之外
如果
n==0
则立即返回1
,使其余代码无法访问。编辑:我想。由于缺少{}
和缩进,我很难阅读您的if语句。对不起,如果是单线的话,整个事情不知怎么搞砸了。每个类只能有一个公共类。看来你没有在这里展示完整的课程。因此:研究并相应地改进你的问题。“未解决的编译”问题基本上意味着:它甚至不编译。所以,即使eclipse允许这样做:当您的类没有编译时,也不要运行它!如果n==0
则立即返回1
,使其余代码无法访问。编辑:我想。由于缺少{}
和缩进,我很难阅读您的if语句。对不起,如果是单线的话,整个事情不知怎么搞砸了。每个类只能有一个公共类。看来你没有在这里展示完整的课程。因此:研究并相应地改进你的问题。“未解决的编译”问题基本上意味着:它甚至不编译。所以,即使eclipse允许这样做:当您的类没有编译时,也不要运行它!谢谢你,我甚至没有那样想!谢谢你,我甚至没有那样想!
static class FakultaetNichtDefiniertException extends RuntimeException{
public FakultaetNichtDefiniertException(long n){
super("Die Fakultät is für den Wert "+ n +" nicht definiert.");
}
}