首页 > 解决方案 > 具有相同类型擦除解决方法的方法,无需重命名方法名称

问题描述

在不重命名方法的情况下,绕过这种类型擦除的最佳方法是什么:

GetResultSet<Entity> getEntities(String entityType, Map<String,PropertyCondition> propertyConditions);
GetResultSet<Entity> getEntities(String entityType, Map<String, BlobCondition> blobConditions);

标签: java

解决方案


最好的方法是重命名方法。

您还可以用专用子类替换映射来描述过滤器选项(因为它们的类型不会被删除):

class PropertyConditions { Map<String, PropertyCondition> conditions }

GetResultSet<Entity> getEntities(String entityType, PropertyConditions propertyConditions);

如果您想要混淆解决方法,您还可以通过切换参数的顺序或引入虚拟参数来消除参数签名的歧义。


推荐阅读