Como outros já mencionaram,
não há mecanismo typedef em Java.
Eu também não apoio "classes falsas" em geral, mas não deve haver uma regra geral estrita aqui:
Se o seu código, por exemplo, usa repetidamente e repetidamente um "tipo baseado em genérico", por exemplo:
Map<String, List<Integer>>
Você definitivamente deve considerar ter uma subclasse para esse fim.
Outra abordagem que se pode considerar é, por exemplo, ter em seu código uma desaceleração como:
//@Alias Map<String, List<Integer>> NameToNumbers;
E então use no seu código NameToNumbers e tenha uma tarefa de pré-compilador (ANT / Gradle / Maven) para processar e gerar código java relevante.
Eu sei que para alguns dos leitores desta resposta isso pode parecer estranho, mas é quantas estruturas implementadas "anotações" antes do JDK 5, é isso que o projeto lombok está fazendo e outras estruturas.