Boa tarde a todos.
Sou novo no GUJ e estava ledo sobre java reflections aqui: https://www.google.com.br/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=java%20reflection%20tutorial
Dai surgiu uma dúvida que não minha opinião merece ser discutida mais a fundo:
Qual a diferença entre:
Class c = Class.forName(“example.packge.Myclass”).getInstance()
ou Myclass c = new Myclass();
ou ainda Myclass c = Myclass.getInstance (implementando em Myclass o pattern singleton é claro.)
Para mim basicamente a primeira e a terceira forma são formas próximas de recuperar uma instancia de uma determinada classe em memória.
Acho eu que a primeira simplesmente recuperaria uma instancia de uma determinada classe que estivesse em memória, a segunda criaria uma nova instancia de uma determinada classe e a terceira permitiria apenas uma instancia. Mas e ai? Isto está meio confuso para mim.
Tem ainda a Class.forName(“example.packge.Myclass”).newInstance() que faria analogia com a segunda forma citada acima assim como a terceira faz analogia com a primeira. Também não é tão visível a diferença e utilidade de ambas as formas exceto que sei que Class.forName(“example.packge.Myclass”).newInstance() sempre irá localizar o construtor sem argumentos via java reflection.