In C ci sono due modi per convertire un tipo: il cast esplicito e implicito.
E mi è sempre evidente se il cast è esplicito o no, ad esempio, se ho:
Ma in java ci sono altri modi per convertire: ad esempio utilizzando il metodo toString().codice:int i; float f; f=f+i; // cast implicito i=(int)f; // cast esplicito
Visto che la differenza sostanziale tra cast esplicito e implicito è che nel cast esplicito si specifica a livello di codice che si sta effettuando una conversione, se io ho una classe A che contiene il metodo toString(), e dichiaro:
Sto effettuando un cast implicito o esplicito? A livello di codice non sto specificando niente,eppure questa dichiarazione è equivalente a:codice:A a=new A(); System.out.println(a);
E non sono sicuro se dichiarando System.out.println(a) il cast avviene a runtime o a compile time.codice:System.out.println(a.toString()); //Oppure: System.out.println((String)a);
Cosa dite ?![]()

Rispondi quotando