Visualizzazione dei risultati da 1 a 10 su 13

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2015
    Messaggi
    14
    Spero di non aver scritto stupidaggini


    public class Persona {

    public String nome;
    public String cognome;


    public Persona(String nome, String cognome) {
    // TODO Auto-generated constructor stub
    }

    // TODO Auto-generated method stub

    Persona p1 = new Persona("Mario", "Rossi");
    Persona p2 = new Persona("Mario", "Rossi");




    public boolean equals(Object p2){
    Persona other = (Persona) p2;
    boolean x= nome.equals(other.nome);
    return x;
    }



    }

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Xert Visualizza il messaggio
    Spero di non aver scritto stupidaggini
    Se è questo che hai scritto .... mancano un po' di cose. Tecnicamente, il equals è corretto. Ma generalmente non si fa così, cioè non si fa un cast diretto e basta (equals non deve schiantarsi lanciando ClassCastException, invece bisognerebbe testare prima il tipo con l'operatore instanceof)
    Il tuo equals comunque confronta solo i nomi ... e oltretutto direttamente sui campi che sono pure public (non è proprio il massimo questo ...).

    Il vero punto che non va è che il costruttore è vuoto, non fa nulla, quindi i campi non vengono inizializzati se fai solo new Persona( .... ). E se i campi restano a null ... allora sì che il equals si schianta, e con NullPointerException.

    E non ho comunque capito cosa ci fanno (e che senso hanno) i Persona p1/p2 lì in mezzo ...
    Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.