PDA

View Full Version : [Java] Reflection: invocazione metodo di una classe


Abdujaparov
10-12-2007, 21:17
Salve a tutti ho una classe chiamata GoogleTalkBotSbbImpl che al suo interno definisce vari metodi tra i quali:

public abstract GoogleTalkBotSbbUsageParameter getDefaultSbbUsageParameterSet();

che deve essere usato in questo modo:
getDefaultSbbUsageParameterSet().sampleResponseTime(System.currentTimeMillis()-start);

Ora io con la reflection riesco ad otteneregetDefaultSbbUsageParameterSet() (ottenendo un oggetto della classe Method, ho anche l'oggetto Class della classe in cui è dichiarato il metodo) come faccio ad invocare, tramite reflection la stringa di codice:

getDefaultSbbUsageParameterSet().sampleResponseTime(System.currentTimeMillis()-start);

?

Grazie a tutti, ciao ciao.

isAlreadyInUse
11-12-2007, 08:28
http://java.sun.com/developer/technicalArticles/ALT/Reflection/index.html

Abdujaparov
11-12-2007, 08:40
Ciao, il mio dubbio è questo in pratica cose viene lanciato del metodo dichiarato astratto?
Non viene semplicemente richiamato il metodo ma viene fatto altro non è una semplice chiamata a:
getDefaultSbbUsageParameterSet()

ma chiama:
getDefaultSbbUsageParameterSet().sampleResponseTime(System.currentTimeMillis()-start);

come faccio a chiamare sampleResponseTime attraverso getDefaultSbbUsageParameterSet()?
Grazie a tutti, ciao ciao.

isAlreadyInUse
11-12-2007, 08:43
getDefaultSbbUsageParameterSet();
Questo praticamente ti restuisce l'oggetto che ha come metodo
sampleResponseTime(...)

Quondi ti richiami il primo metodo con la reflection e sul tipo restituito ti rchiami il secondometodo.

Abdujaparov
11-12-2007, 12:13
Grazie mille sono riuscito a risolvere.
Grazie ancora, ciao ciao.

isAlreadyInUse
11-12-2007, 12:17
Era cosi?