我想创建一个(递归的) 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),您将无法做到。“递归”时,需要一个名称来引用。)