Mostrar métodos declarados de várias classes em tempo real

3 respostas
Samuel_Medeiros

Com uma classe estou executando um arquivo JAR e consigo fazer mostrar os métodos declarados de uma única classe com o seguinte código:

File file  = new File("Arquivo.jar");
	        URL url = file.toURI().toURL();
	        URL[] urls = new URL[]{url};
	        ClassLoader cl = new URLClassLoader(urls);
			Class cls = cl.loadClass("client");
			Method methlist[] = cls.getDeclaredMethods();

			for (int i = 0; i < methlist.length; i++) {
				Method m = methlist[i];
				System.out.println("Name = " + m.getName());
				System.out.println("Class member = " + m.getDeclaringClass());
				System.out.println("Modifier = " + Modifier.toString(m.getModifiers()));
				Class pvec[] = m.getParameterTypes();

				for (int j = 0; j < pvec.length; j++)
					System.out.println("Parameter #" + j + " " + pvec[j]);

				Class evec[] = m.getExceptionTypes();
				for (int j = 0; j < evec.length; j++)
					System.out.println("Exception #" + j + " " + evec[j]);

				System.out.println("Return type = " + m.getReturnType());
			}
		}
		catch (Exception e) {
			e.printStackTrace();
		}

Funciona bem porém para agilizar o processo eu gostaria de fazer mostrar todos os métodos que estão sendo declarados de todas as classes, e apontar de qual classe o método está sendo executado, alguém poderia me ajudar?

3 Respostas

natanaelv

Creio que seja possível fazer isso com uso de AOP interceptando a execução de todos os métodos.
Se der uma pesquisada vai encontrar várias ferramentas e frameworks legais pra fazer isso, como AspectJ e Spring.

Nesse link tem um tutorial sobre o básico de AspectJ:

http://www.eclipse.org/aspectj/doc/released/progguide/starting.html

Samuel_Medeiros

natanaelv:
Creio que seja possível fazer isso com uso de AOP interceptando a execução de todos os métodos.
Se der uma pesquisada vai encontrar várias ferramentas e frameworks legais pra fazer isso, como AspectJ e Spring.

Nesse link tem um tutorial sobre o básico de AspectJ:

http://www.eclipse.org/aspectj/doc/released/progguide/starting.html

Não teria uma sugestão mais parecida com o meu código não? :lol:
Eu queria aproveitar ao menos uma parte dele

Samuel_Medeiros

Já solucionei minha dúvida, obrigado assim mesmo @natanaelv :slight_smile:

Criado 28 de março de 2013
Ultima resposta 31 de mar. de 2013
Respostas 3
Participantes 2