Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Bukkit OOP_Java_Oop_Minecraft_Bukkit - Fatal编程技术网

Java Bukkit OOP

Java Bukkit OOP,java,oop,minecraft,bukkit,Java,Oop,Minecraft,Bukkit,有人能告诉我为什么这不起作用吗? 这是一个基本的OOP函数。它可以工作,但由于某种原因它停止了工作 public class InfoboardManager { private MainInfoboard mi; private Player p; public InfoboardManager(Player p) { this.p = p; } public MainInfoboard getMainInfoboard() {

有人能告诉我为什么这不起作用吗? 这是一个基本的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);
    }
多谢各位

您的私人主信息板mi;InfoboardManageris类的属性从未初始化

初始化主信息板


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

主信息板在哪里初始化?仅使用当前代码,它可能会抛出NullPointerException。你应该能很容易地解决这个问题?。除此之外,不工作并不是一个正确的描述什么事情发生了不同于你的预期。请包括您期望的内容,以及您得到的结果,包括代码、图像和堆栈跟踪(如果相关)。@n247s我想将玩家姓名打印到控制台。所以当玩家加入时,游戏机会写下:他的名字是Enco。你们不会在任何地方叫echoName。@Esko谢谢你们的回答我叫它,但我抄得不好。现在已经编辑好了。
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());
    }
}
}