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

例如:

Map<String, Map<String, Map<String, ... >>>> foo;

显然,我需要某种方式来引用“正在定义的类型”或某种方式来执行此操作。我想我可以做:
Map<String, Map<String, ?>>

...然后只是@SupressWarnings(“unchecked”)我自己越过了不可避免的警告,但是还有更好的方法吗?

最佳答案

创建一个辅助类或接口(interface)以引用“正在定义的类型”。像这样:

class MyMap extends HashMap<String, MyMap> {
    ...
}

或者
interface MyMap extends Map<String, MyMap> {

}

(我认为如果没有这样的辅助类/接口(interface),您将无法做到。“递归”时,需要一个名称来引用。)

09-30 14:47
查看更多