Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Parametri di tipo

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Quote Originariamente inviata da linux_r Visualizza il messaggio
    Potresti riscrivere meglio, proprio in italiano non mi è chiaro ciò che hai scritto . grazie

    Purchè carne estenda erba però !!
    Scusami, ho fatto un po' di confusione io e ho detto qualche minchiata (ho letto di fretta durante un deploy)

    A:
    codice:
    public class Erbivoro<E extends Erba> implements Cibo, Animale<E> { 
        public void mangia(E e) { }
    }
    B:
    codice:
     
    public class Erbivoro implements Cibo,Animale<Erba> { 
        public void mangia(Erba erba) { }
    }
    La differenza tra A e B è che

    in A tu costruisci un erbivoro dicendogli cosa mangerà. E mangerà solo quello

    Quindi

    Erbivoro<Mele> e = new Erbivoro<Mele>();
    e.mangia(new Mele()); // OK

    e.mangia(new Pere()); // NO!

    In B invece l'oggetto da mangiare lo passi direttamente a mangia() quindi puoi fare:

    e.mangia(new Mele()); // OK
    e.mangia(new Pere()); // OK!

    (sempre restando su sottoclassi di Erba)


    Spero di non aver scritto minchiate, sono fuso oggi .-.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    305
    Quote Originariamente inviata da Alex'87 Visualizza il messaggio
    Scusami, ho fatto un po' di confusione io e ho detto qualche minchiata (ho letto di fretta durante un deploy)

    A:
    codice:
    public class Erbivoro<E extends Erba> implements Cibo, Animale<E> { 
        public void mangia(E e) { }
    }
    B:
    codice:
     
    public class Erbivoro implements Cibo,Animale<Erba> { 
        public void mangia(Erba erba) { }
    }
    La differenza tra A e B è che

    in A tu costruisci un erbivoro dicendogli cosa mangerà. E mangerà solo quello

    Quindi

    Erbivoro<Mele> e = new Erbivoro<Mele>();
    e.mangia(new Mele()); // OK

    e.mangia(new Pere()); // NO!

    In B invece l'oggetto da mangiare lo passi direttamente a mangia() quindi puoi fare:

    e.mangia(new Mele()); // OK
    e.mangia(new Pere()); // OK!

    (sempre restando su sottoclassi di Erba)


    Spero di non aver scritto minchiate, sono fuso oggi .-.
    supponendo pero anche nel caso A che mele sia sottoclasse di erba

  3. #3
    Quote Originariamente inviata da Alex'87 Visualizza il messaggio
    Spero di non aver scritto minchiate, sono fuso oggi .-.
    E ci credo...con tutta questa erba...
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

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