Não é possível instanciar tipos genéricos via reflexão porque eles simplesmente não existem em tempo de execução (nem em tempo de compilação, mas isso já é outra história…).
Você pode fazer simplesmente assim (deve dar um warning, mas nada que mate):
Na verdade HashMap<String, Object> e HashMap<Abobra, Abacaxi> é a mesma coisa pro java em tempo de execucao. Ela nao consegue distinguir. No fundo, generics do java é um truque de compilacao, a nao ser pela pequena parte de reflexao que da para fazer nos atributos e classes.
Só uma pergunta, se você sabe que quer um HashMap e, mais, quer um de <String,String> porque precisa fazer com reflection? Não pode fazer o bom e velho new HashMap<String,String>()?
entao simplesmente esqueca do generics, ele nao vai incomodar! Considere usar o picocontainer, ele ja faz essas coisas sozinho, excelente pra suar dentro de outro framework.
se vc jah sabe que o HashMap precisa ser <String, String>, pq nao utilizar um objeto do tipo Properties via reflection do jeito que vc precisa ? Nao iria resolver o seu problema ?
se vc jah sabe que o HashMap precisa ser <String, String>, pq nao utilizar um objeto do tipo Properties via reflection do jeito que vc precisa ? Nao iria resolver o seu problema ?[/quote]
Ele ainda nao sabe quais sao os tipos parametrizados. Foi so um exemplo. E properties eh mais fraca que HashMap<String,String>