Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Usare Reflaction

  1. #1

    Usare Reflaction

    Ciao a tutti.
    Sto' realizzando un'applicazione che gestisce dei tipi di dati, che sono definiti in delle classi all'interno di un package.
    Siccome questi tipi di dato sono variabili vorrei trovare un modo per poterli caricare nell'applicazione in modo dinamico.
    In pratica il mio programma deve creare dei parametri che hanno come tipo, i tipi che ho definito nelle classi di cui ho parlato sopra. Quindi alla creazione del parametro devo specificare di che tipo si tratta. Vorrei far elencare tutti i tipi di dato in una combo box che si carica dinamicamente in base alle classi che ho creato e poi per esempio usare un attributo all'interno della classe che ne specifica il nome da visualizzare nella combo box! Allora il mio problema e' come caricare tutte queste classi!
    Con reflaction io so' cariare una singola classe e recuperarne i valori, ma come si fa a recuperare tutte le classi conoscendo o il package oppure la classe astratta che implementano(perche' tutti i tipi di dato implementano una classe astratta comune!)!
    Spero di aver ben spiegato il mio problema e ringrazio tutti coloro che mi possano dare un aiutino!!!! grazie!!!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Usare Reflaction

    Originariamente inviato da rocklife
    Sto' realizzando un'applicazione che gestisce dei tipi di dati, che sono definiti in delle classi all'interno di un package.
    Fin qui ok.

    Originariamente inviato da rocklife
    Siccome questi tipi di dato sono variabili
    "variabili" ... in che senso?? Cambiano in base a cosa??

    Originariamente inviato da rocklife
    In pratica il mio programma deve creare dei parametri
    Parametri di che cosa???

    Originariamente inviato da rocklife
    Spero di aver ben spiegato il mio problema
    No ... almeno io personalmente non ho capito cosa vuoi fare. Puoi fare un esempio pratico? .... non intendo codice .... spiega con un esempio le classi che hai, dove/come sono e cosa vuoi fare di preciso.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Allora, variabili cioe' che non sono di numero fisso, cioe' sono in continuo aumento quindi non voglio mettere nel codice i tipi ma voglio creare una cosa dinamica!
    Provo a fare un esempio:
    La mi applicazione gestisce la creazione di parametri!!! questi parametri oltre ad avere un nome, e una descrizione hanno un tipo di appartenenza (per esempio parametro nome "pippo" descrizione "paperopoli" tipo "intero")!!
    I tipi di questi parametri sono sono primitivi ma sono complessi e sono rappresentati da queste classi definite da me "dinamiche" perche' giorno dopo giorno ne aggiungo e ne elimino qualcuna!!!
    quando definisco il tipo del parametro, lo scelgo all'interno di una combo box!! adesso i valori assegnati nella combo box sono scritti a mano nel codice quindi ogni volta che aggiungo una nuova classe devo andare ad aggiungere una nuova entry nella combo box!! vorrei trovare un modo per rendere automatico tutto questo!!!
    spero di essermi spiegato meglio adesso!! !! grazie

  4. #4
    Nessuna idea???

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da rocklife
    Nessuna idea???
    Qualche idea e suggerimento potrei provare a fornirlo io .... se solo spiegassi meglio la questione. E in termini di classi ed eventuali relazioni tra di loro ... non che continui a ripetere "parametri" ... parametri ... parametri ....

    Proviamo a fare una ipotesi? Hai un tuo package com.rocklife che contiene le classi Pippo, Pluto, Paperino. Un domani potresti fare classi Gastone e Paperone e magari eliminare Pippo.

    Fin qui è quello che vuoi? In quella combobox che dici, cosa ci deve essere? Tutti i nomi delle classi? O stringhe che sono fornite dalle classi?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Si, la questione e' quella che hai detto tu! allora io nella combo box voglio il valore di un attributo della classe che mi deve dire il tipo:

    classe pippo{
    string tipo = "pippo";
    }

    Considera che tutte le classi Pippo, pluto,paperino, gastone e paperone, estendono la classe astratta paperopoli!! tutti quanti nel package com.rocklife!!!

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Benissimo ... ora ci siamo! Il problema però non è tanto nel popolare il combobox o fare in modo che ogni classe fornisca una stringa. Il tuo problema, come hai detto all'inizio, è quello di poter trovare in modo dinamico tutte le classi, senza sapere a priori il loro nome.

    La brutta notizia è che in Java, dato un nome di package, non c'è modo direttamente di avere la lista delle classi contenute.

    La questione quindi è quella di indicare e/o trovare tu tutte le classi in qualche modo, cercando di minimizzare le operazioni eventualmente da fare per tenere aggiornata la lista.

    Possibili scenari:

    - il più semplice: elencare tutte le classi (nomi completi di package) in un semplice file di testo (messo dove vuoi ... su file-system, in un jar). Il programma lo legge e carica le classi. Quando inserisci/togli classi il massimo che devi fare è solo aggiornare il file della lista.

    - Se le classi sono file .class "sfusi" nel file-system, fare una ricerca in una (o più) directory usando i metodi della classe File.

    - Se le classi sono dentro un jar, usare le classi del package java.util.zip o java.util.jar per aprire il jar, leggere le entry e determinare nome completo della classe. Questo richiede che si "sappia" la locazione precisa del jar ... non basta che sia in "classpath".
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    Ho capito!grazie! allora con il package non ci faccio nulla... ma neache con la classe astratta? cioe' si potrebbe prendere la classe astratta e ricercare tutte quelle che la estendono???

  9. #9
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da rocklife
    cioe' si potrebbe prendere la classe astratta e ricercare tutte quelle che la estendono???
    No, non si può fare questo tipo di "ricerca".
    Chiaramente poi gli oggetti di quelle classi li "vedrai" come di tipo della tua classe astratta Paperopoli. Questo sì, è ovvio.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  10. #10
    Chiaramente poi gli oggetti di quelle classi li "vedrai" come di tipo della tua classe astratta Paperopoli. Questo sì, è ovvio.
    Ma non riesco a sfruttarlo per i miei scopi???

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.