映射到实现接口的类

She*_*erz 5 java generics wildcard hashmap

我现在有

class A {...}
interface B {...}
Run Code Online (Sandbox Code Playgroud)

我想要的是一些相当于

HashMap<String, A implements B>
Run Code Online (Sandbox Code Playgroud)

即,String映射到A该实现的任何实例B.但是这种语法不能编译.有没有办法映射到实现接口的类?请注意,这A不是通用的,所以我不能做类似的事情

A<? implements B>
Run Code Online (Sandbox Code Playgroud)

And*_*lko 5

可以在通用上下文中完成,例如,在通用方法中:

public <T extends A & B> void method() {
    Map<String, T> map = new HashMap<>();
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,我们无法将这些多重限制应用于通配符.