地图和仿制药的地图

Bee*_*ope 7 java generics collections recursion maps

我想创建一个(递归)地图地图.也就是说,Map的类型值是与外部地图相同类型的另一个Map.

例如:

Map<String, Map<String, Map<String, ... >>>> foo;
Run Code Online (Sandbox Code Playgroud)

显然,我需要一些方法来引用"正在定义的类型"或其他东西才能做到这一点.我想我能做到:

Map<String, Map<String, ?>>
Run Code Online (Sandbox Code Playgroud)

...然后只是@SupressWarnings("未选中")自己超越了不可避免的警告,但有更好的方法吗?

aio*_*obe 7

创建辅助类或接口以引用"正在定义的类型".像这样:

class MyMap extends HashMap<String, MyMap> {
    ...
}
Run Code Online (Sandbox Code Playgroud)

要么

interface MyMap extends Map<String, MyMap> {

}
Run Code Online (Sandbox Code Playgroud)

(我认为你不能没有这样的辅助类/接口.当"递归"时你需要一个名称来引用.)

  • 我说**或**...不要使用*这两个类和接口! (5认同)