我试图将调度任务的返回值传递给匿名类,但我遇到了麻烦。如果我将返回值设置为最终变量,则表示它未初始化:
/* Not initialized */
final BukkitTask task = Bukkit.getScheduler().runTaskTimer(plugin, new Runnable() {
public void run() {
/* irrelevant code */
task.cancel();
}
}, 0L, 20L);
我还尝试通过调用匿名类中的方法来传递变量,但是它将返回类型更改为 void,因此我无法传递正确的值:
BukkitTask temp = null;
/* Returns void */
temp = Bukkit.getScheduler().runTaskTimer(plugin, new Runnable() {
private BukkitTask task;
public void initTask(BukkitTask task) {
this.task = task;
}
public void run() {
/* irrelevant code */
task.cancel();
}
}.initTask(temp), 0L, 20L);
如何将返回值传递给代码中的匿名类?