首页 > 解决方案 > 有界通配符作为方法参数

问题描述

我想创建一个返回类型是地图对象的方法,参数应该是扩展A并实现I的类。所以我的代码如下:

public Map<String,String> getIdea(Class < ? extends A & I) { .....}

但是我收到一个编译错误,说我的语法错误。它期望在 A 之后有一个逗号。即使使用逗号也不起作用。你有什么主意吗?

标签: javamethodsparametersinterfacebounded-wildcard

解决方案


将 Sotirios Delimanolis 在注释中所说的话放入代码中:

public <T extends A & I> Map<String, String> getIdea(Class<? extends T> clazz) { }

老实说,我不认为通配符在这里得到任何东西,因为T它是紧密绑定的,所以你可能会更好地使用非通配符版本。


推荐阅读