Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    347

    Funzione di <?> nei tipi generici

    che differenza c'è nello scrivere così: "public valorediritorno metodoA(Generic<?> b)" e così: "public valorediritorno metodoA(Generic b)"??

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Nella prima stai passando un tipo generico come argomento... nella seconda stai passando il suo raw-type e ciò dovrebbe provocare un unchecked warning.

    Per maggior info sui wildcard: http://docs.oracle.com/javase/tutori...wildcards.html


    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

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    347
    ma a parte il warning che genererebbe, altre differenze (sintattiche) ce ne sono?
    EDIT: domanda niubba XD: quel tipo di for (for (Object e : c)) che significa?

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da John360
    ma a parte il warning che genererebbe, altre differenze (sintattiche) ce ne sono?
    EDIT: domanda niubba XD: quel tipo di for (for (Object e : c)) che significa?
    Più che differenze sintattiche, ci sono un sacco di implicazioni a livello di compilazione. E' concettualmente sbagliato usare i raw-types (esistono, più che altro, per ragioni di retro-compatibilità di codice).

    Ma credo tu ti stia avvicinando per la prima volta ai Generics... ergo, dovresti studiarli dall'inizio.

    Quel for è il cosiddetto for-each, introdotto da Java 5.

    codice:
    Collection<Object> c = ...;
    for(Object o : c) {
       ...
    }
    E' equivalente a
    codice:
    Collection<Object> c = ...;
    for(int i=0; i<c.size(); i++) {
       Object o = c.get(i);
       ...
    }
    Si può usare con qualunque collezione e con gli array.


    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

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    347
    ah perfetto grazie! ancora non conoscevo quel for, comunque si è da poco che abbiamo iniziato a studiare i generici e cerco di capirli a fondo... comunque cosa intendi con "studiarli dall'inizio"?
    p.s. abbiamo iniziato a studiarli da quando ne abbiamo avuto bisogno per le interfacce.

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da John360
    ah perfetto grazie! ancora non conoscevo quel for, comunque si è da poco che abbiamo iniziato a studiare i generici e cerco di capirli a fondo... comunque cosa intendi con "studiarli dall'inizio"?
    p.s. abbiamo iniziato a studiarli da quando ne abbiamo avuto bisogno per le interfacce.
    Secondo me questa e' una buona risorsa: http://docs.oracle.com/javase/tutori...ics/index.html

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.