在Java中合并类时出现没有关闭实例错误。

9 浏览
0 Comments

在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发生了什么事?

0
0 Comments

当在外部类的实例之外构造Request时,需要将Request设置为静态类。

原因:

在Java中,如果内部类没有被声明为静态类,那么它将与外部类的实例相关联。这意味着在构造内部类的实例之前,必须先创建外部类的实例。否则,将出现"No closing instance"错误。

解决方法:

将Request类声明为静态类,这样就可以在外部类的实例之外构造Request类的实例了。

public class OuterClass {
    // 外部类的代码
    
    public static class Request {
        // Request类的代码
    }
    
    // 外部类的代码
}

这样,就可以在不创建OuterClass实例的情况下,构造Request类的实例了。

0