Newsgroup: it.comp.java
Titolo: riconoscere classe chiamante

Ciao,
  devo passare nei parametri di un metodo di classe il nome della
classe chiamante ed il metodo. E' possibile non doverlo scrivere ma
farmelo passare in *automatico*. Faccio 1 esempio sperando di essere
chiaro:
Classe1
public void stampoNomeClasse (String nomeclasse) {
  System.out.println(nomeclasse);
}
Classe2
public void pippo(){
 classeuno.stampoNomeClasse("Classe2.pippo");
}
Vorrei non dover scrivere io il nome *classe.metodo*. Esiste qualcosa
tipo _class_method che mi torna la stringa?
  Grazie
    xsluca

 wrote in message
news:56a6746a.01062...@posting.google.com...


 ha scritto nel
messaggio news:9gpp48$g56$1...@serv1.albacom.net...


tipo _class_method che mi torna la stringa?
Sono d'accordo con Alessio Saltarin nel dire che spesso esigenze di
questo tipo nascondano difetti di design, tuttavia...
per alleggerire un po' il tuo problema (ma non sono sicuro di averlo
capito completamente), potresti scrivere
Classe2
public void pippo(){
 String nomeMetodo = ".pippo";
 classeuno.stampoNomeClasse(this.getClass().getName() + nomeMetodo);
}
NB: getName() ritorna una String con il nome _completo_
Certo mi fa un po' arricciare lo stomaco, ma dovrebbe rimanere valido
e funzionante anche in classi derivate da Class2 (a meno di override).
HTH
-- 
Ciao
	Fabrizio C.

chiaro:
[CUT]
Ho trovato questo
http://developer.java.sun.com/developer/qow/archive/104/index.html
Spero ti serva.
-- 
Ciao
	Fabrizio C.

Grazie mille!
    Ora provo, spero che funzioni meglio dell'altro suggerimento.
Scusami ma perchč dici che ci deve per forza essere un errore di design?
    bye
     lca
"Fabrizio Camera" <f.camer...@NOSPAMusa.net> ha scritto nel
messaggio news:3b31f1b5...@news.libero.it...


Non hai bisogno dell'RTTI per scrivere il nome della classe e del metodo che
sono in esecuzione.
Basta semplicemente che li metti in una stringa statica e finale e li passi
come argomento al metodo "log". Scriverai due righe in piů, ma ti elimini
tutto il fardello della "reflection".
In ogni caso, prima si sviluppa la soluzione e poi la si ottimizza. Se vedi
che con la reflection ottieni dei risultati accettabili in termini di
performance, allora va bene cosě...
"xsluca" <
xsl...@virgilio.it
 (xsluca)> wrote in message
news:9gut04$12ecg$1...@news02.it.net...


> 
http://developer.java.sun.com/developer/qow/archive/104/index.html
-- 
Ciao
	Fabrizio C.

Bhè cerco di chiarirvi la mia situazione:
    Ho una serie di classi che fanno quel che devono. Tutto viene
loggato, per tutto intendo tutto, ogni riga di codice viene loggata in
questo modo:
    log.scrivi ("Ho fatto questo.");
    La versione 2 di 'ste classi deve aggiungere al messaggio di log il
nome della classe e del metodo:
    log.scrivi ("NomeClasse.nomeMetodo: Ho fatto questo");
    Siccome non voglio mettermi a fare questo lavoro a mano cercavo un
metodo, una proprierà un chissà che di qualsiasi classe che mi
permettesse di anteporre a "Ho fatto questo" una sorta di _class_method
che mi scrivesse in automatico la classe ed il metodo. In questo modo:
    log.scrivi(_class_method +"Ho fatto questo");
    Purtroppo con le soluzioni del lang.reflect non sono riuscito a fare
granchè. Per quanto riguarda la seconda soluzione di  Fabrizio.... non
ho potuto ancora provarla, ma mi sembra comunque macchinosa. Vi
ringrazio ma speravo in qualcosa di più immediato.
    Grazie 1000
    xsluca
"Fabrizio Camera" <f.camer...@NOSPAMusa.net> ha scritto nel
messaggio news:3b370d7...@news.libero.it...
