При загрузке класса 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
?