2013-04-07 8 views
5

Sono nuovo di java e ho lavorato a questo esercizio per un po ', ma continuo a ricevere l'errore: int non può essere dereferenziato. Ho visto un paio di domande simili, ma ancora non riesco a capire il mio caso. Ecco i codici completi:Nuovo in Java e ho l'errore "int non può essere dereferenziato"

package inclass; 

class OneInt { 
    int n; 

    OneInt(int n) { 
    this.n = n; 
    } 

    @Override public boolean equals(Object that) { 
    if (that instanceof OneInt) { 
     OneInt thatInt = (OneInt) that; 
     return n.equals(thatInt.n); // error happens here 
    } else { 
     return false; 
    } 
    } 

    public static void main(String[] args) { 
    Object c = new OneInt(9); 
    Object c2 = new OneInt(9); 
    System.out.println(c.equals(c2)); 
    System.out.println(c.equals("doesn't work")); 
    } 
} 

La ringrazio molto per avermi aiutato con questo piccolo problema.

risposta

7

equals è un metodo di una classe. int è un primitivo, non una classe. Basta usare == invece:

return n == thatInt.n; 
4

Per confrontare int s, basta usare l'operatore di ==:

if (n == thatInt.n) 

Nota che int non è una classe, in modo da poter mai utilizzare l'operatore . con una variabile int.

Problemi correlati