这个错误是因为在静态上下文中,不能直接引用非静态方法。静态方法是属于类的,而非静态方法是属于对象的。在静态上下文中,没有对象实例,所以无法直接引用非静态方法。

要解决这个问题,有两种方法:

  1. 将非静态方法改为静态方法。如果你的方法不依赖于对象的状态或属性,可以将其改为静态方法。例如,如果方法B不依赖于任何对象的状态,你可以将其改为静态方法,然后在静态上下文中调用edit(B)。
  2. 创建一个对象实例,然后通过该对象实例来调用非静态方法。如果你需要使用非静态方法,你可以先创建一个对象实例,然后通过该对象实例来调用edit(B)。例如,如果B是一个类的实例方法,你可以先创建一个B的对象,然后通过该对象来调用edit(B)。

示例代码:

public class MyClass {
    public static void main(String[] args) {
        B b = new B();
        b.edit(B);
    }
}

public class B {
    public void edit(B b) {
        // 非静态方法的逻辑
    }
}

请根据你的具体情况选择适合的解决方法

无法从 static 上下文引用非 static 方法 editB

原文地址: http://www.cveoy.top/t/topic/iZuM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录