As vezes, durante a codificação, precisamos criar um objeto de uma classe sem utilizar a sintaxe: “Classe obj = new Construtor()”. Podemos utilizar os seguintes modos:
1. Usar o método newInstance da Classe class:
Class c = Class.forName(“NomeClasse”);
NomeClasse obj = (NomeClasse) c.newInstance();
2. Usar o método clone() da java.lang.Object – Cria uma cópia de um objeto existente:
NomeClasse obj = new NomeClasse();
NomeClasse objCopiado = obj.clone();
3. Usar a deserialização da Object:
ObjectInputStream os = new ObjectInputStream(ObjDaClasseInputStream);
NomeClasse obj = (NomeClasse) os.readObject();
4. Usar o ClassLoader:
getClass().getClassLoader().loadClass(“NomeClasse”).newInstance();
5. Usar por Reflection:
constructor.newInstance() ou class.newInstance()
6. Também, podemos usar o Padrão “Factory Method”. Recomendo uma lida sobre isto.