При загрузке класса System метод <clinit>
создает переменные in
, out
и err
PrintStream
в null
с помощью метода nullPrintStream()
:
private static PrintStream nullPrintStream() throws NullPointerException {
if (currentTimeMillis() > 0) {
return null;
}
throw new NullPointerException();
}
Я понимаю, почему это так, и почему переменные не могут быть созданы во время загрузки, но я смущен, это содержимое этого метода.
Почему он сравнивает currentTimeMillis()
с 0
? В каком случае это сравнение когда-либо вернет false
?