Treta com Reflection (Só para os fortes)

4 respostas
java
Mint

Caras essa agora vai ser pra rachar o crânio de qqr um. O problema: Carregar uma classe que implementa uma interface simples com 1 método apenas (@FunctionalInterface), converter o objecto Class ( ou Class ) e chamar o metodo atraves do objecto Interface.

Vo dar uns codigos pra facilitar:

Classe interface:

@FunctionalInterface
 public interface SimpleInterface {
     void execute();
 }

Classe que implementa:

public class SIImpl implements SimpleInterface {
    @Override
    public void execute() { System.out.println("Caralho borracha..."); }
}

Class Main:

public class Main {
    public static void main(String[] args) {
        SimpleInterface si = Carregador.load(--CAMINHO PARA A CLASSE AQUI--);
        si.execute();
    }
}

Quem conseguir fazer esse carregador e de preferencia que ele consiga carregar de outros caminhos externos à jar principal vai ganhar, slá, um joinha. :stuck_out_tongue:. Que os jogos começem!

4 Respostas

pmlm

Assim de cor, sem testar…

SimpleInterface si = Class.forName("com.xxxx.Myclass").newInstance();
Mint

Neste metodo onde MyClass deveria estar? Na mesma pasta que Class? Em algum lugar do javapath?

pmlm

sim

F

Ja trabalhei em um projeto com uma parada dessa, que carregava classes e o caminho da classe vinha do banco de dados, assim Class.forName(“caminha da classe”).newInstance().

Criado 23 de março de 2018
Ultima resposta 5 de abr. de 2018
Respostas 4
Participantes 3