Java的类型系统根本不够强大,无法强制执行您直接描述的类型约束,因此您需要执行一些不安全的强制转换才能完成此工作-
或将其包装
Map在其他一些可以强制实现类型安全的API中。 Guava
ClassToInstanceMap正是针对此用例进行了此操作,提供了外部安全的API,该API对
Map接口施加了额外的限制以使其能够正常工作。(公开:我为番石榴做出了贡献。)
唯一会导致内存泄漏的情况是,如果您在此处使用的某些类在应用程序的生命周期内不会保留。对于许多用户而言,这并不是一个问题,尤其是当您编写的“服务器端”应用程序与卸载未使用的类无关时。



