Khi tải các lớp hệ thống, phương pháp <clinit>
instantiates biến in
, out
và err
PrintStream
để null
sử dụng nullPrintStream()
phương pháp:Tại sao hàm nullPrintStream() trong java/lang/System so sánh currentTimeMillis() với 0?
private static PrintStream nullPrintStream() throws NullPointerException {
if (currentTimeMillis() > 0) {
return null;
}
throw new NullPointerException();
}
Tôi hiểu tại sao đây là trường hợp, và tại sao các biến không thể được khởi tạo trong tải, nhưng những gì tôi đang nhầm lẫn là nội dung của phương pháp đó.
Tại sao nó so sánh currentTimeMillis()
đến 0
? Trong trường hợp nào thì so sánh đó sẽ trở lại false
?
Nếu bạn quay ngược thời gian đến 31/12/1969 :-) –