Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2015
    Messaggi
    12

    Classe contenente istanze di una classe diversa

    Salve a tutti! Ho una classe che contiene un ArrayList di oggetti di un'altra classe, in particolare si tratta di una classe che deve contenere delle statistiche relative a dei cicli che ho eseguito.
    Il problema è che quando riempio l'array list con oggetti diversi, in realtà alla fine risultano essere tutti uguali! Provo a spiegarmi con un abbozzo di codice:

    codice:
    public class Stat {        ArrayList<CycleStat> cycles;
       
            
        public Stat(){
            cycles = new ArrayList<>();
        }
        
        public void addCycleStat(CycleStat c){
            cycles.add(c);
        }
    Quello che faccio e che mi dà problemi è una cosa di questo tipo:

    codice:
    Stat s = new Stat();
    { //loop
    CycleStats c = new CycleStats();
    //...//
    s.addCycleStat(c);
    } //fine loop
    Alla fine del loop tutti gli oggetti che ho aggiunto sono uguali. Pensavo di adottare il metodo clone per ottenere una copia dell'oggetto e non l'oggetto vero e proprio, ma ho qualche perplessità. C'è qualche altro modo per risolvere?
    Grazie in anticipo

  2. #2
    cosa intendi per "tutti uguali"? hanno tutti gli stessi valori o sono tutti reference allo stesso oggetto? probabilmente hai sbagliato il codice col loop
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2015
    Messaggi
    12
    Quote Originariamente inviata da Santino83_02 Visualizza il messaggio
    cosa intendi per "tutti uguali"? hanno tutti gli stessi valori o sono tutti reference allo stesso oggetto? probabilmente hai sbagliato il codice col loop
    hanno gli stessi valori In particolare i valori calcolati all'ultimo ciclo
    Ultima modifica di Nando7; 14-09-2015 a 10:51

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Posta l'intero codice del loop e ricorda: se vuoi creare un nuovo oggetto devi usare l'operatore new.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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 © 2024 vBulletin Solutions, Inc. All rights reserved.