Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    5

    Retrival path di una classe

    Ciao a tutti,
    scrivo per chiedervi info riguardo a questo problema:
    volevo sapere come posso fare in Java a ritrovare in modo automatico il path interno di una classe (intendo interno al progetto non il classico path C:\ ecc..) avendo il nome della classe stessa.

    Mi spiego meglio:
    ammettiamo di avere una classe così situata nel progetto: com.pack.test.Pippo (una classe Pippo all'interno del package com.pack.test.).

    Se io conosco SOLO IL NOME della classe (nell'esempio conosco Pippo.java) come posso risalire al path completo della classe nei package (cioè com.pack.test.Pippo) ?
    C'è un oggetto o un metodo che dato in input il nome della classe mi restituisce questo path?

    Grazie a tutti
    Ciao!!!

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Certo. Dato un oggetto x qualunque, ottieni il suo Class, da cui ottieni il Package:

    codice:
    Object x = ...
    
    System.out.println( x.getClass().getPackage().getName() );
    Tieni presente che una classe potrebbe anche non risiedere dentro ad un Package (ovvero, far parte del default-package). In questo caso, getPackage() ritorna "null".


    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
    May 2012
    Messaggi
    5
    Grazie per la risposta!!
    Il mio problema è leggermente diverso, provo a spiegarmi meglio:

    String nomeClasse = "Pippo.java";

    System.out.println(metodoRetrivalPath(nomeClasse)) ;

    OUTPUT ATTESO:

    com.pack.test.Pippo


    come posso realizzare questo metodo "metodoRetrivalPath" ??
    Spero di essere stato un pò più chiaro

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Direi che non si può fare, senza avere determinati presupposti:

    1) Tu hai semplicemente una stringa che riporta il nome di un sorgente... e chi ce l'ha il sorgente? Il programma (in teoria), no di sicuro.

    2) Il nome semplice di una classe non identifica nulla... ciò che è essenziale in programmazione è il full-qualified name di una classe, che comprende, appunto, anche il package. Questo perchè è perfettamente lecito avere due classi che si chiamano "Pippo" in package differenti (vedi, ad esempio, la classe List, presente in java.util e java.awt).

    3) Se tu hai a disposizione le classi "sciolte" (quindi, non all'interno di un JAR), allora potresti creare un metodo (ricorsivo) che si scorre tutto l'albero del progetto (ma il punto di partenza devi conoscerlo tu) e che cerca il nome della classe desiderata.

    Ancora mi sfugge lo scopo di questa cosa, comunque...


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