io davvero non so perché l'istruzione if di seguito non è in esecuzione:Se dichiarazione con confronto String non riesce
if (s == "/quit")
{
System.out.println("quitted");
}
Di seguito si riporta l'intera classe.
Probabilmente è un problema di logica davvero stupido, ma mi sono tirato fuori i capelli senza riuscire a capirlo.
Ringraziamenti per lo sguardo :)
class TextParser extends Thread {
public void run() {
while (true) {
for(int i = 0; i < connectionList.size(); i++) {
try {
System.out.println("reading " + i);
Connection c = connectionList.elementAt(i);
Thread.sleep(200);
System.out.println("reading " + i);
String s = "";
if (c.in.ready() == true) {
s = c.in.readLine();
//System.out.println(i + "> "+ s);
if (s == "/quit") {
System.out.println("quitted");
}
if(! s.equals("")) {
for(int j = 0; j < connectionList.size(); j++) {
Connection c2 = connectionList.elementAt(j);
c2.out.println(s);
}
}
}
} catch(Exception e){
System.out.println("reading error");
}
}
}
}
}
Peccato che non possiamo dare +1 per le modifiche. –
== significa; è questo lo stesso oggetto. Non corrisponde agli oggetti che contengono gli stessi dati. –
come mai è etichettato come 'multithreading'? – Asaf