Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Poker1
    Registrato dal
    Jul 2002
    Messaggi
    479

    Istanziare una classe con Reflection

    ciao a tutti!!!
    non sapevo che titolo dare al post, la cosa è un pò complicata.
    Dunque, io ho una classe astratta così definita:

    codice:
    public abstract class MiaClasse {
       public MiaClasse(){ ..... }
       
       public abstract void metodo1();
    }
    Ora... all'interno di un'altra classe che sto scrivendo io dovrei usare un'istanza di una classe che estende MiaClasse. Chiaramente io non so come si chiamerà questa classe, a me serve soltanto che venga implementato il metodo1 ... come potrei risolvere?
    Non riscrivere la ruota, usa le librerie.
    by Bjarne Stroustrup
    EIDON SOFT MEMBER

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    In questo particolare caso non hai alcun tipo di problema. Quando tu conosci il nome della classe che estende "MiaClasse", operi nel seguente modo:

    codice:
    String nomeDellaClasse = ...   // Il nome della classe che estende MiaClasse
    
    try {
       MiaClasse mc = (MiaClasse) Class.forName( nomeDellaClasse ).newInstance();
    
       // D'ora in avanti opererai con l'oggetto
       mc.metodo1();
    } catch (Exception e) { e.printStackTrace(); }
    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 L'avatar di Poker1
    Registrato dal
    Jul 2002
    Messaggi
    479
    comunque sia io devo "forzare" colui che estende la classe a fornirmi un nome. Ci posso stare, glielo passo tra i parametri e via
    Non riscrivere la ruota, usa le librerie.
    by Bjarne Stroustrup
    EIDON SOFT MEMBER

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da Poker1
    comunque sia io devo "forzare" colui che estende la classe a fornirmi un nome. Ci posso stare, glielo passo tra i parametri e via
    Direi che se non conosci almeno il nome della classe non puoi fare gran ché...


    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

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.