Autore Topic: Java. Classe anonima persa a runtime....  (Letto 567 volte)

Offline giannign1

  • Utente junior
  • **
  • Post: 85
  • Respect: +2
    • chiedetelo_se_lo_volete
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Play Store ID:
    giannign1
  • Sistema operativo:
    Windows 7
Java. Classe anonima persa a runtime....
« il: 28 Ottobre 2011, 16:16:59 CEST »
0
Salve

la situazione è questa

Ho una classe del genere:

file "Classe.java"
Codice (Java): [Seleziona]
public class Classe{
public void onTick(){
}
}

poi una classe "TickThread.java"
Codice (Java): [Seleziona]
public class TickThread extends Thread{
ArrayList<Classe> mList;

public TickThread(ArrayList<Classe> pList){
mList = pList;
}

public void run(){
sleep(1000);
for(Classe temp : mList){
temp.onTick();
}
}

Infine nell'activity faccio:
Codice (Java): [Seleziona]
ArrayList<Classe> mList = new ArrayList<Classe>();
.............

public void onLoadComplete() { //Lavoro in AndEngine
mList.add(new Classe(){
@Override
public void onTick(){
}
};
(new TickThread(mList)).start();
}

Ovviamente ho semplificato il codice....
Comunque non capisco come mai, da quel che vedo debuggando e anche dai risultati in esecuzione, quando il run() del Thread chiama il metodo onTick sull'oggetto, nonostante abbia lo stesso id di istanza in entrambi i thread (quindi non è stato fatto un clone o chissà che) viene effettivamente eseguito il metodo onTick della classe originaria e non l'override....

idee?

Grazie

Offline Gigiuz

  • Utente normale
  • ***
  • Post: 187
  • Respect: +23
    • Google+
    • gigiuzzo81
    • Gigiuz81
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Note III
  • Play Store ID:
    GGXSoft
  • Sistema operativo:
    Windows 7 64bit, OS X (virtualized), Ubuntu
Re:Java. Classe anonima persa a runtime....
« Risposta #1 il: 28 Ottobre 2011, 17:43:33 CEST »
0
A parte l'errore sintattico qui (sicuramente una svista di ricopiatura qui sul forum):

Codice (Java): [Seleziona]
public void onLoadComplete() {
   mList.add(new Classe(){
     @Override
     public void onTick(){
     }
   }); // <- mancava la parentesi tonda
   (new TickThread(mList)).start();
}

Effettivamente non riesco a localizzare alcun errore logico in quello che hai scritto... :-\
Hai bisogno di implementare un sistema di "codici seriali di sblocco" nella tua applicazione? Dai un'occhiata alla mia libreria: RemoteUnlocker

Offline giannign1

  • Utente junior
  • **
  • Post: 85
  • Respect: +2
    • chiedetelo_se_lo_volete
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Play Store ID:
    giannign1
  • Sistema operativo:
    Windows 7
Re:Java. Classe anonima persa a runtime....
« Risposta #2 il: 28 Ottobre 2011, 20:01:47 CEST »
0
Di quell'errore non tenerne conto, quel codice l'ho scritto al volo è un estratto dell'originale

Comunque....boh....adesso funziona...devo aver cambiato qualcosa senza farci troppo caso...