[英]Recursive data type java generic type warnings
我正在嘗試制作一個遞歸的HashMap數據結構:
public HashMap<Character, HashMap> root;
根目錄中的HashMap
也是<Character, HashMap>
類型。 這會拋出原始類型警告,因為里面的HashMap沒有參數化。 我想不出一種方法來消除這些警告,因為任何明確參數化HashMap
嘗試都不會因為它的遞歸性質而停止。 有什么建議?
謝謝!
宣布:
class MyHashMap extends HashMap<Character, MyHashMap> { }
限定:
MyHashMap root;
聲明接口:
interface RecursiveMap<K> extends Map<K, RecursiveMap<K>> { }
聲明實現:
class RecursiveHashMap<K> extends HashMap<K, RecursiveMap<K>> implements RecursiveMap<K> { }
class RecursiveTreeMap<K> extends TreeMap<K, RecursiveMap<K>> implements RecursiveMap<K> { }
限定:
RecursiveMap<Character> root = new RecursiveHashMap<Character>();
RecursiveMap<Character> root2 = new RecursiveTreeMap<Character>();
你不確定內部Map
泛型類型然后使用下面的代碼。
始終使用接口進行聲明。
如果您將來想要更改TreeMap
類型的root
,那么您可以輕松完成。
Map<Character, Map<Character,Object>> root=new HashMap<Character, Map<Character,Object>>();
我認為擁有遞歸Map是不可思議的,因為在任何給定的時間點,你可能希望某種對象類型與Map不同,否則它將具有無限深度(沒有意義)。 嘗試使用:
Map<Character, Map<Character, Object>
,OR
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.