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

    Problema passaggio parametro di tipo Class<?>

    Ciao a tutti,
    vi espongo il mio problema:
    Devo passare a un oggetto una classe, in modo che poi quell'oggetto crei una nuova istanza della classe passatagli.
    La classe che devo passare però deve essere una sottoclasse della classe che specifico nella dichiarazione del metodo, mi spiego con un esempio:
    il metodo è del tipo
    codice:
    void compraFrutto(Class<Frutto> fruitClass)
    Frutto è una classe astratta, quindi io devo passargli
    codice:
    Mela.class, Arancia.class
    , ecc.., che sono le classi che ereditano da Frutto.
    Il problema è che evidentemente non si fa così, perchè mi dà errore a compile time, dicendomi che non
    esiste un metodo che accetta un parametro di tipo
    codice:
    Class<Mela>
    .
    Per vari motivi non posso passargli direttamente gli oggetti istanziati, perchè è la classe che contiene "compraFrutto()" che sa quando e se istanziarli.

  2. #2
    Ho risolto:
    ho scoperto che il metodo che accetta classi che possono essere anche sottoclassi della classe specificata deve essere fatto così:
    codice:
    void compraFrutto(Class<? extends Frutto> fruitClass)

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.