Как напечатать Hello World без точки с запятой в Java? - PullRequest
0 голосов
/ 15 января 2020

Может кто-нибудь объяснить мне, почему printf работает, но println не работает?

if (System.out.printf("Hello World") == null);


if (System.out.println("Hello World") == null);

1 Ответ

4 голосов
/ 15 января 2020

println имеет тип возврата void, поэтому вы не можете сравнить его с null (или с чем-либо еще).

public void println(String x) {
    synchronized (this) {
        print(x);
        newLine();
    }
}

printf возвращает экземпляр PrintStream что позволяет вам сравнить его с null (хотя я не вижу причин, почему вы захотите это сделать, поскольку он никогда не вернет null).

public PrintStream printf(String format, Object ... args) {
    return format(format, args);
}
...