Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Collezioni Java

  1. #1

    Collezioni Java

    Ciao, sto facendo la mia prima classe Java per iniziare a usare le collezioni e il compilatore mi da subito un errore: " il metodo add(integer) è indefinito per il tipo Hashset". Ho importato la java.util.*. Qualcuno di voi per caso sa da cosa può dipendere?



    codice:
    import java.util.Collections.*;
    
    public class Hashset {
      public static void main( String[] args ){
                                                            Hashset set = new Hashset();
                                                            set.add( new Integer(1));
                                                          }
    }

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    La versione (più) corretta è

    codice:
    Hashset<Integer> set = new Hashset<Integer>();
    set.add(new Integer(1));
    ma anche

    codice:
    Hashset set = new Hashset();
    set.add(new Integer(1));
    va bene ma ti verrà segnalato un warning.


    Occhio comunque che la classe si chiama HashSet e non Hashset.

    E il package da importare è java.util;
    Ultima modifica di Alex'87; 14-05-2014 a 11:26
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Sono un pirla, non avevo messo la maiuscola sulla s di HashSet.
    Sì lo so che con le collezioni si dovrebbero utilizzare i tipi generici parametrizzati, solo che dato che sono un neofita volevo prima un po' smanettare le collezioni senza il loro utilizzo. In effetti il compilatore mi da dei warning, ma posso comunque eseguire le operazioni principali, vero?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da sandonatese Visualizza il messaggio
    In effetti il compilatore mi da dei warning, ma posso comunque eseguire le operazioni principali, vero?
    Certo. Il compilatore sostanzialmente ti avverte solo che senza i generics potresti fare operazioni inappropriate e insicure, tipo: inserire in una collezione degli Integer e poi in un'altra parte del codice cercare di estrarli e "castarli" a Long (l'errore lo avresti poi a runtime).

    Se non vuoi avere quei warning, potresti anche disabilitare tutte le nuove feature di Java 5+ semplicemente specificando il "source level" a 1.4 .
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.