PDA

View Full Version : [JAVA] bug


thebol
11-10-2007, 15:42
public static void main(String[] args) {
// TODO Auto-generated method stub
Collection coll = null;
System.out.println(coll!=null?coll.toString():"nullColl");
System.out.flush();
System.out.println(coll!=null?coll.toString():"nullColl" + "pippo");
System.out.flush();
System.out.println("pluto" + coll!=null?coll.toString():"nullColl");
System.out.flush();
}


questo codice dà errore
la terza println da nullpointer

qualcuno sa darmi una spiegazione??!??

isAlreadyInUse
11-10-2007, 15:45
public static void main(String[] args) {
// TODO Auto-generated method stub
Collection<String> coll = null;
System.out.println(coll!=null?coll.toString():"nullColl");
System.out.flush();
System.out.println(coll!=null?coll.toString():"nullColl" + "pippo");
System.out.flush();
System.out.println("pluto" + (coll!=null?coll.toString():"nullColl"));
System.out.flush();
}

thebol
11-10-2007, 15:49
public static void main(String[] args) {
// TODO Auto-generated method stub
Collection<String> coll = null;
System.out.println(coll!=null?coll.toString():"nullColl");
System.out.flush();
System.out.println(coll!=null?coll.toString():"nullColl" + "pippo");
System.out.flush();
System.out.println("pluto" + (coll!=null?coll.toString():"nullColl"));
System.out.flush();
}

ok, forse ho capito. Usando l'operatore + per le stringhe, non riesce a gestire bene la precedenza degli operatori(in questo caso il terziario) e và in vacca

mi leggero le specifiche del linguaggio per sta cosa...

andbin
11-10-2007, 17:13
Usando l'operatore + per le stringhe, non riesce a gestire bene la precedenza degli operatori(in questo caso il terziario) e và in vaccaEhm ... non è che "non riesce a gestire bene la precedenza".
L'operatore + ha una precedenza decisamente maggiore rispetto all'operatore condizionale. Quest'ultimo è praticamente il penultimo nell'ordine di precedenza, appena superiore agli operatori di assegnamento che hanno la precedenza più bassa.