Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    34

    ridefinire runtime elementi vector

    Salve!

    Provo a spiegare il problema che sto incontrando:

    Ho un vector pieno di oggetti di un certo tipo.
    Runtime voglio ridefinire uno di questi elementi (il cui indice mi verra' dato da un mouse listener su una jlist), istanziando al suo posto un elemento di una sottoclasse del tipo originario del mio vector.
    Se avessi un array di oggetti mi basterebbe fare qualcosa del tipo:

    MusicArtist[] maArray = ...
    ciclo for dove istanzio tutti gli oggetti
    maArray[3] = new SoloMusicArtist(...);

    Con un vector, se uso la stessa sintassi, ovvero maVector.get(3) = new ...
    mi dice che a sinistra di un assegnamento ci deve esser una variabile ovviamente..

    L'idea era quella di rimuovere l'oggetto in posizione 3 e aggiungere un oggetto di tipo SoloMusicArtist in posizione 3 ma mi sembra oltre che costosa dal punto di vista della memoria (devo spostare tutti gli oggetti > 3 di una pos per 2 volte) anche piuttosto rischiosa, sbagliare un indice e' cosa di un attimo..
    Il discorso dell'istanziare un oggetto di una sua sottoclasse mi servira' poi per chiamarci metodi che usano il polimorfismo e non avere ventordicimila righe di codice per fare la stessa operazione si oggetti diversi..

    C'e' un modo migliore per ottenere questo risultato?

    Grazie mille!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: ridefinire runtime elementi vector

    Originariamente inviato da stefo_11
    Con un vector, se uso la stessa sintassi, ovvero maVector.get(3) = new ...
    Ovviamente no.

    maVector.set(3, new .......);

    (o in alternativa il "vecchio" metodo di Vector setElementAt).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    34
    Gia'..grazie^^

    Ho fatto una cosa del genere dunque:

    music_artist_vec.set(index, new MusicGroup(music_artist_vec.get(index).get_nome()) );

    ma mi da l'errore sul new MusicGroup dicendo che non puo' istanziare un MusicGroup.

    Per quale motivo cio' avviene? secondo la regola di conformita' che c'han fatto studiare dovrebbe essere possibile, essendo MusicGroup una sottoclasse di MusicArtist, il tipo del vettore msic_artist_vec..

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