Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [JAVA] toArray() warning

    Buongiorno a tutti,

    avrei bisogno di un piccolo chiarimento.
    Dovrei semplicemente trasformare un vettore in un array con il metodo toArray().
    Il codice è il seguente:

    Vector items = new Vector();
    for (int i=0;i<n;i++)
    {
    items.add(new MenuItem(i));
    }
    MenuItem [] newItems=(MenuItem[])items.toArray(new MenuItem[items.size()]);

    Per quale motivo, seppur la compilazione vada a buon fine, mi viene segnalato il warning
    "Recompile with -Xlint:unchecked for details" ?

    Grazie in anticipo,
    Saverio

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480

    Moderazione

    Ho spostato la discussione nel forum dedicato a Java.
    In futuro, poni qui le tue domande relative a questo linguaggio.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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

    Re: [JAVA] toArray() warning

    Originariamente inviato da MasQueNada
    Dovrei semplicemente trasformare un vettore in un array con il metodo toArray().
    Il codice è il seguente:

    Vector items = new Vector();
    for (int i=0;i<n;i++)
    {
    items.add(new MenuItem(i));
    }
    MenuItem [] newItems=(MenuItem[])items.toArray(new MenuItem[items.size()]);

    Per quale motivo, seppur la compilazione vada a buon fine, mi viene segnalato il warning
    "Recompile with -Xlint:unchecked for details" ?
    Pensaci un attimo .... un Vector può contenere qualunque cosa... Quel warning ti dice solo: "guarda, fai attenzione che potrebbero esserci dei problemi".

    Se hai possibilità, usa i "Generics" che è meglio:
    codice:
    Vector<MenuItem> items = new Vector<MenuItem>();
    for (int i=0;i<n;i++)
    {
        items.add(new MenuItem("" + i));
    }
                
    MenuItem[] newItems = items.toArray(new MenuItem[items.size()]);
    MenuItem, solo per sapere, è il MenuItem di java.awt?? Perché non c'è un costruttore che accetta un intero!!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Innanzitutto grazie per la risposta così celere!
    Avevo intuito cosa significasse quel warning ma pensavo dipendesse da un codice poco ortodosso.
    Tuttavia il codice scritto è solo un esempio; come hai sottolineato, non esiste infatti un costruttore simile per MenuItem.

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.