在Java中合并类时出现没有关闭实例错误。
在Java中合并类时出现没有关闭实例错误。
我正在尝试将我的独立Java文件放在一个类中。代码如下:\n
public class oneClass { class Request { public double a; public double b; public double c; public Request(double a, double b, double c) { this.a = a; this.b = b; this.c = c; } } public static class Controller { public static void main(String[] args) { Request req = new Request(time, 0, 0); // 一些代码 } } }
\n但是我遇到了一个错误:\n
"Exception in thread "main" java.lang.Error: Unresolved compilation problem: No enclosing instance of type oneClass is accessible. Must qualify the allocation with an enclosing instance of type oneClass (e.g. x.new A() where x is an instance of oneClass)."
\n发生了什么事?
当在外部类的实例之外构造Request时,需要将Request设置为静态类。
原因:
在Java中,如果内部类没有被声明为静态类,那么它将与外部类的实例相关联。这意味着在构造内部类的实例之前,必须先创建外部类的实例。否则,将出现"No closing instance"错误。
解决方法:
将Request类声明为静态类,这样就可以在外部类的实例之外构造Request类的实例了。
public class OuterClass { // 外部类的代码 public static class Request { // Request类的代码 } // 外部类的代码 }
这样,就可以在不创建OuterClass实例的情况下,构造Request类的实例了。