Instanciar objeto com o tipo como parâmetro

Pessoal !!!

Certamente esta dúvida está respondida no fórum porém não sei por qual nome pesquisar. Então criei este tópico.

Gostaria de instanciar um objeto de acordo com seu tipo. Exemplo:

instanciar(Objeto tal){
tal = new Objeto();
return tal;
}

instanciar (Carro c) ; // resultado c = new Carro();
instanciar (Moto m ); // resultado m = new Moto();

Como posso criar este método ?

Obrigado

Edu

Você pode usar o método newInstance da classe Class. Procure por reflections.

lembrando que newInstance() recebe o nome completo ex: java.lang.String e para isso funcionar a classe a ser instanciada deve ter um construtor sem parâmetros.

Se não quiser se preocupar com o nome você pode fazer seu método instanciar usando Objeto.Class().getName().

Se quiser instanciar passando parâmetro ai a lógica é mas complicada você terá que fazer um classForName e obter um construtor do tipo do seu paramento e fazer construtor.newInstance(param)