java - 在重复任务中调用 'this' 时出现静态问题

标签 java static minecraft bukkit

我正在尝试制作一个使用 scheduleSyncRepeatingTask 的插件,并且该任务是通过调用方法创建的。问题是试图从不同的类调用它。

当我尝试调用该方法时,它会说该方法需要静态。因此,我将方法设为static,然后 scheduleSyncRepeatingTask 中的第一个参数表示它不能在 static 上下文中使用。

我的方法

public static void newCountdown() {
    Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
        public void run() {
            for (Player player : Bukkit.getServer().getOnlinePlayers()) {
                player.sendMessage("Hey");
            }
        }                   
    }, 0, 20);
}

我现在对 Java 还很陌生,static 变量仍然是我试图理解的东西,所以如果有人可以将我链接到我可以阅读的地方,甚至如果有视频那就太好了。

至于问题,如果有人有解决方案,那么我们将不胜感激。

最佳答案

查看this post快速简单地了解 static 关键字的解释。

为了避免出现该方法需要静态的错误,请在实例而不是类上调用该方法。

像这样:

Foo f = new Foo();
f.newCountdown();

而不是:

Foo.newCountdown();

关于java - 在重复任务中调用 'this' 时出现静态问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31250349/

相关文章:

java - Java中的curl语法模拟

java - JDBC Pool 已挂起,无法为应用程序分配资源

c# - 为什么静态构造函数中的异常包装在 TypeInitializationException 中

php - 在函数内重新声明相同的静态变量

c# - 为什么发送数据包没有发送任何数据(与minecraft服务器握手)?

java - 如何使用上下文路径访问Tomcat中的应用程序

java - 在 Edittext Android 中编辑下划线的颜色

c++ - 具有可变成员的单例对象

c# - 将 AppData 路径作为参数传递

java - 为每个 Minecraft-Server/Java 应用程序创建一个虚拟机是否有意义?