getClass().getMethod alguem sabe como usar?

Ola
pessoa com uso isso?

getClass().getMethod

desde ja agradeço

Isso é Reflection:
Eis um exemplo:

//Exemplo de reflexão
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;


public class Teste14ReflectionClass {

	public static void main(String[] args) {
		
		
	
		//Pede que o usuário informe o nome de uma classe para ser verificada	
		System.out.println("Digite uma classe: ");
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		try {
			Class emp;
			
			/*Obtém o objeto Class a partir de um nome de classe fornecido
			na forma de String*/
			emp = Class.forName(in.readLine());
			
			
			//getModifiers() retorna os modificadores de acesso da classe
			System.out.println(Modifier.toString(emp.getModifiers()) + " class " +
					emp.getName() + " extends " + emp.getSuperclass());
			System.out.println("{");
			
			/*getDeclaredFields() retorna um array de Field, que corresponde
			aos atributos da classe*/
			Field [] fi = emp.getDeclaredFields();
			
			for (int i = 0; i &lt fi.length; i++)
			{
				//getType() retorna o tipo de um Field
				Class tipo = fi[i].getType();
				System.out.println(tipo.getName() + " " + fi[i].getName() + ";");
			}
			
			/*getDeclaredConstructors() retorna um array de Constructor, que corresponde
			aos construtores definidos para a classe*/
			Constructor [] con = emp.getDeclaredConstructors();
			for (int i = 0; i &lt con.length; i++)
			{
				/*getParameterTypes() retorna um array de informações de tipo
				dos parâmetros da classe*/
				Class [] params = con[i].getParameterTypes();
				System.out.print(Modifier.toString(con[i].getModifiers()) + " " + con[i].getName() + 
						"(");
				for (int j = 0; j &lt params.length; j++)
				{
					if (j &gt 0) System.out.print(",");
					System.out.print(params[j].getName());
				}
				System.out.println(");");
			}
			
			/*getMethods() retorna um array de Method, que corresponde aos métodos
			definidos para a classe*/
			Method [] me = emp.getMethods();
			
			for (int i = 0; i &lt me.length; i++)
			{	
				//Para cada método, obtém os parâmetros
				Class [] params = me[i].getParameterTypes();
				System.out.print(Modifier.toString(me[i].getModifiers()) + " " +
						me[i].getReturnType().getName() + 
						" " + me[i].getName() + "(");
				for (int j = 0; j &lt params.length; j++)
				{
					if (j &gt 0) System.out.print(",");
					System.out.print(params[j].getName());
				}
				System.out.println(");");
			}
			
			System.out.println("}");
			
			
		} catch (ClassNotFoundException e) {
			
			System.out.println("Classe não encontrada");
		}
		catch(IOException e1)
		{
		
		}
		
	}
}

class Empregado
{
	String nome;
	int idade;
	double salario;
	
	public double getSalario() { return salario; }
	public int getIdade() { return idade; }
	public String getNome() { return nome; }
	public void calculaSalario(int horas) 
	{ 
		if (horas &gt 176)
		{
			salario = 176*10 + (horas - 176)*15;
		}
		else salario = horas*10; 
	}
	public void setIdade(int i) { idade = i; }
	public void setNome(String n) { nome = n; }
	public void mostraDados()
	{
		System.out.println("Nome do empregado: " + nome);
		System.out.println("Idade: " + idade);
		System.out.println("Salário: " + salario);
		
	
	}
	public Empregado()
	{
		nome = "";
		idade = 0;
		salario = 0;

	}
	
	
}

class Gerente extends Empregado
{
	double bonus;
	void setBonus(double b) { bonus = b;}

	public void calculaSalario(int horas)
	{
		if (horas &gt 176)
		{
			salario = 176*20 + (horas - 176)*30;
		}
		else salario = horas*20; 
		salario += bonus;
	}
	public void mostraDados()
	{
		System.out.println("Nome do chefe: " + nome);
		System.out.println("Idade: " + idade);
		System.out.println("Salário: " + salario);
	
	}
	
}

Tem um artigo aqui no GUJ. Use como referência.

Como eu faço para acessar um metodo de uma classe a passar um parametro do tipo inteiro?

desde ja agradeço

Method m = obj.getClass().getMethod(“seuMetodo”, new Class[] { Integer.class } );
m.invoke( obj, new Integer { 1 } );

O nome da minha classe frmClientes
que possui o metodo

GravaDados(int tipo);

no construtor dessa classe frmClientes eu coloquei

botoes.setTela(new frmClientes());

na minha classe botoes eu coloquei

Method m = tela.getClass().getMethod("GravaDados", new Class[] { Integer.class } ); m.invoke( tela, new Integer { 1 } );

esta certo a minha logica?

e na segunda linha

                m.invoke( tela, new Integer { 1 } );

esto com erro mas tudo bem, quero intender como funciona depois eu resolvo.

desde ja agradeço

O teu método setTela() recebe que tipo de objeto?

Recebe a instancia da minha tela!

desde ja agradeço

Sim, isso eu vi, mas qual o tipo do argumento?

Opa acho que perdi alguma coisa pelo caminho.

pelo que intendi e isso passo a instancia da minha tela
para uma variavel da minha classe botoes
apartir dessa variavel eu executo o metodo.

vc poderia me explicar melhor ou me indicar um lugar onde eu possa intender?

desde ja agradeço

Olhando melhor a sua pergunta,
vc se refere na declaração da variavel?

private Object tela;

Oi,
desculpe me meter… mais olha só como eu faço isso:

Method 
m = tela.getClass().getMethod("GravaDados", new Class[] { Integer.class } );
                 				                        
//
// Constroi a ação
//				
ActionListener
lo_action = new ActionListener() {						
public void actionPerformed(ActionEvent e){						
 
 //
 // recolhe o método
 //
 try {
     
     lo_action_method.invoke(io_tela,new Object[]{Integer.class});	

 }
 catch(Exception ex){
	ex.printStackTrace();
 }
}
};

Você está com erro na linha :

m.invoke( tela, new Integer { 1 } );

porque o invoke só aceita 2 Arrays de Objetos…aff, minha identação não é boa pra colocar com [code]…

Eu falava na declaração do método mesmo.

setTela( XXX x ) {}

Onde XXX é igual à ???

Por favor lina pode mandar sua ajuda sempre é muito bem vinda
e de fato sua identação me deixou meio confuso mas nada com ctrl+alt+f
não resolva.
desde ja agradeço

respondendo ao danieldestro

sera que isso
public void setTela(Object tela) {
this.tela = tela;
}

Segue o exception

java.lang.NoSuchMethodException: com.softin.aginesNetwork.gui.forms.ferramentaria.FrmCadastroTipoServ.GravaDados(java.lang.Integer)
	at java.lang.Class.getMethod(Unknown Source)
	at com.softin.aginesNetwork.gui.components.botoesComuns.btNovoNV1ActionPerformed(Unknown Source)
	at com.softin.aginesNetwork.gui.components.botoesComuns$1.actionPerformed(Unknown Source)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

Só uma pergunta. Pq vc utiliza Object, já que trabalha com AWT (talvez até swing)?

Eu não sei te responder.
deixa eu explicar algumas coisas.

Esse sistema que eu trabalho foi desenvolvido totalmente estruturado
estou trabalhando nele a uns 8 meses e separei o sistema por camadas
como um framework .

a classe dos botoes esta em um projeto a parte e a tela em outro,
No projeto onde esta a tela eu adiciono o .jar do projeto dos botoes.

Faz um método +/- assim:

private Object executeMethod( Object obj, String name ) throws Exception { Method createMethod = obj.getClass().getMethod( name, new Class[0] ); return createMethod.invoke( obj, new Object[0] ); }

E deixa pronto pra reusar. Neste caso ai o método não recebe nenhum argumento, mas você pode adaptá-lo.