Transformar arquivo 'Objeto.java' em Classe manipulável

2 respostas Resolvido
java
cezar_gfilho

Tenho um método que pega o arquivo(Objeto.java) pelo Path, mas o java.io.File me devolve apenas uma String com o nome do arquivo.
Como consigo fazer esse arquivo ser filho de java.lang.Object ?
Só assim consigo manipular como Objeto java e fazer por exemplo a contagem de métodos.

Classe que pega o Arquivo no diretório:

public static String getFileName() {
		String fileName = new File(caminho).getName();
		return fileName;
	}

Classe que recebe o objeto e conta os métodos:

public static int contaMetodos(Object obj) {
    		int numeroMetodos = 0;
    		try {
    			numeroMetodos = obj.getClass().getDeclaredMethods().length;
    			return numeroMetodos;

    		} catch (Exception e) {
    			e.printStackTrace();
    			System.err.println("Não foi possível contar o número de métodos");
    		}
    		return numeroMetodos;
    	}

2 Respostas

staroski

Um arquivo .java precisa ser compilado para virar um arquivo .class.
Depois disso, você pode especializar um ClassLoader para ler os bytes desse arquivo .class.
Através desse ClassLoader você vai conseguir obter um objeto do tipo Class e acessar seus membros através de reflection.

cezar_gfilho
Solucao aceita

Valeu mano. Acabei utilizando Class<?> classe como parâmetro da classe contaMetodos.
E peço para quando a instância for criada, passar o path e a classe que ele quer compilada como parâmetro ("path", Classe.class) . Dessa forma consigo manipular tanto arquivo .java como a classe compilada.

Futuramente tento implementar dessa forma mais independente.

Criado 22 de agosto de 2019
Ultima resposta 22 de ago. de 2019
Respostas 2
Participantes 2