gpt4 book ai didi

java - 尝试参加另一个类时出现问题

转载 作者:太空宇宙 更新时间:2023-11-04 06:27:11 25 4
gpt4 key购买 nike

我编写了 getPlugin() 方法,以便能够从另一个类获取主类。

public class Main extends JavaPlugin {
public Main getPlugin() {
return this;
}
}

但是当我尝试调用它时...

public class Arena {
private Main plugin = Main.getPlugin();
}

...Eclipse 给我以下错误:

Cannot make a static reference to the non-static method getPlugin() from the type Main

我使用过静态,但静态在很多不同的地方给我带来了问题,而且我发现静态通常是一种糟糕的做事方式。导致内存泄漏等问题。

我尝试过使用 getter 和 setter,但它们也需要是静态的吗?我一直使用的代码非常困惑,我想找到一种更干净的方式来访问另一个类。

最佳答案

如果要避免使用静态方法,则需要将变量作为参数传递给对象的构造函数。在您的示例中,它将像这样工作:

public class Arena {
private final Main plugin;
public Arena(Plugin plugin) {
this.plugin = plugin;
}
}

然后您可以从主插件类创建一个 Arena,并将 this 作为参数传递:

public class Main extends JavaPlugin {
@Override
public void onEnable() {
Arena arena = new Arena(this);
}
}

关于java - 尝试参加另一个类时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26637856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com