2017-01-29 4 views
-1

Ich versuche, den Zeitstempel zu zeigen, wenn das Programm zum ersten Mal gestartet und die Zeit, wenn es stoppt. Dann muss ich die Dauer zwischen Anfang und Ende finden. Alle oben genannten Informationen müssen gedruckt werdenSo finden Sie die Dauer zwischen 2 Instant-Zeitstempel

Aber ich habe Schwierigkeiten bei der Unterscheidung zwischen den beiden Instant-Zeit (Anfang, Ende) in meinem Code. Hier ist, was ich habe, ich weiß, ich sollte nicht Null verwenden, aber Sie bekommen die Idee.

public static void main(String[] args) { 
    if (args.length == 0) { 
     Instant t1 = null; 
     Instant t2 = null; 
     Duration duration = null; 
     System.out.println(t1.now()); 
     System.out.println("Input data is missing. Expecting player data."); 
     System.out.println(t2.now()); 
     System.out.println(duration.between(t1, t2)); 
     System.exit(-1); 
    } 
+5

Lassen Sie mich raten, du hast 'NullPointerException' auf' System.out.println (t1.now()); ' – Guy

+0

Sie wirklich Ihre objets Initialisierung mit etwas anderes als' null' beginnen soll. – luk2302

Antwort

1

Sie erhalten wahrscheinlich NullPointerException weil now() ein statische in Instant sind, während Sie es mit dem Objekt von Instant verwenden. Außerdem ist es nicht erforderlich, ein Objekt der Klasse Duration zu deklarieren, da wiederum between() aufKlasse static ist.

public static void main(String[] args) { 
if (args.length == 0) { 
    Instant t1, t2; 
    t1 = Instant.now(); 
    System.out.println(t1); 
    System.out.println("Input data is missing. Expecting player data."); 
    t2 = Instant.now(); 
    System.out.println(t2); 
    System.out.println(Duration.between(t1, t2)); 
    System.exit(-1); 
} 
+0

Vielen Dank für Ihre Hilfe. –

Verwandte Themen