将字符串打印到java.io.Console对象

1 java printing console

我正在制作一个多人游戏,每个玩家在屏幕上都有自己的输入/输出控制台.我在尝试这样做时遇到了一些麻烦.我不希望每个玩家看到其他玩家的输入/输出.

使用类比,我想做一些事情playerOneConsole.out.println("Player One String");,而不是System.out.println("Player One String");每个人都可以看到玩家的东西.

在阅读了一些文档之后,我尝试了这个,但它没有按预期工作,因为它抛出了NullPointerException:

public class Player {

    String myName;
    Console myConsole;

    public Player(String name) {
        myName = name;
        myConsole = System.console();
    }


    public void takeTurn(String playerOptions){
        myConsole.writer().print(playerOptions); //This is not right.
    }
}
Run Code Online (Sandbox Code Playgroud)

我想playerOptions专门打印到该播放器的控制台,而不是System控制台.

顺便说一下,如果有所不同,我正在使用NetBeans IDE 8.0.2.

Lui*_*oza 6

使用时java.io.Console,必须从控制台执行Java应用程序,例如Windows CMD或Linux终端.大多数IDE都不会通过控制台执行Java,因此System#console返回null.

顺便说一句,这段代码:

myConsole.writer().print(playerOptions); //This is not right.
Run Code Online (Sandbox Code Playgroud)

这是对的:)