Java Bukkit OOP
有人能告诉我为什么这不起作用吗? 这是一个基本的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() {
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());
}
}
}