2017-02-08 1 views
-1

Pourquoi la comparaison de l'objet Date Date s'imprime true à la ligne n °. 8 alors que faux à la ligne no. 9 et ligne 10?Pourquoi la comparaison de l'objet Date Date s'imprime-t-elle à la ligne n °. 8 alors que faux à la ligne no. 9 et ligne 10?

import java.time.LocalTime; 
public class Main{ 
    public static void main(String arg[]){ 
     LocalTime t1,t2,t3; 
     t1=LocalTime.parse("10:10"); 
     t2=LocalTime.of(10,10); 
     t3=LocalTime.parse("10:10"); 
     System.out.println(t1==t1); 
     System.out.println(t1==t3); 
     System.out.println(t2==t3); 
    } 
} 
+1

Parce que '==' compare les références. 't1' a la même référence que' t1', donc la première ligne affiche 'true' tandis que les autres affichent' false'. – BackSlash

Répondre

1

Je vous suggère de lire la différence entre égaux et ==

public class Main { 
    public static void main(String arg[]) { 
     LocalTime t1, t2, t3; 
     t1 = LocalTime.parse("10:10"); 
     t2 = LocalTime.of(10, 10); 
     t3 = LocalTime.parse("10:10"); 
     System.out.println(t1 == t1);//true because it matches same memory location 
     System.out.println(t1 == t3); 
     System.out.println(t2 == t3); 

     //you have to use equals method to compare t1,t2,t3 objects 
     System.out.println(t1.equals(t1));//true 
     System.out.println(t1.equals(t3));//true 
     System.out.println(t2.equals(t3));//true 

    } 
} 

Cela montre la différence

+0

http://www.programmerinterview.com/index.php/java-questions/java-whats-the-difference-between-equals-and/ –

0

Utilisation de l'opérateur == vous vérifier si les objets lui-même sont les mêmes.

Vous devez utiliser equals pour comparer des objets par contenu.