Java Bukkit OPEN

Java Bukkit OOP

有人能告诉我为什么这不起作用吗? 这是一个基本的 OOP 函数。它可以工作,但由于某种原因它停止工作了。

public class InfoboardManager {
    private MainInfoboard mi;
    private Player p;

    public InfoboardManager(Player p) {
        this.p = p;
    }

    public MainInfoboard getMainInfoboard() {
        return mi;
    }

    public class MainInfoboard {
        public void echoName() {
            System.out.println("His name is " + p.getName());
        }
    }

}

我是这样称呼它的:

    @EventHandler
    public void onPlayerJoin(PlayerJoinEvent e) {
        InfoboardManager ib = new InfoboardManager(e.getPlayer());
        MainInfoboard mi = ib.getMainInfoboard();
        mi.echoName();
        e.setJoinMessage(null);
    }

非常感谢!

您的 private MainInfoboard mi; 属性 of class InfoboardManager 从未初始化

初始化您的MainInfoboard

public class InfoboardManager {
private MainInfoboard mi;
private Player p;

public InfoboardManager(Player p) {
    this.p = p;
    this.mi = new MainInfoboard();
}

public MainInfoboard getMainInfoboard() {
    return mi;
}

public class MainInfoboard {
    public void echoName() {
        System.out.println("His name is " + p.getName());
    }
}
}

如果是NullPointerException。您可能想告诉我们您遇到的错误。