我已经写了一个TrieMap<V> implements Map<String,V>
类,它显然是从字符串键入的。这工作正常。为没有键的映射实现entrySet
我想加强它与更一般的CharSequence
键。除了最后一个问题,我相信我已经实现了转换,我无法创建K
类型的对象。
现在签名现在必须成为TrieMap<K extends CharSequence,V> implements Map<K,V>
。问题是,我相信你知道,TrieMap
实际上并不存储原始密钥。 (实际上这是它的主要价值之一,因此它通常占用的空间比普通地图少得多。)
要实现Set<Entry<K, V>> entrySet()
因此我必须以某种方式制造K
类型的对象。有什么方法可以实现吗?
@dfb:难点不是将键创建为String实例。难点在于创建K型键,而不知道K是什么。 – 2012-07-19 15:08:54
侧面问题:在TrieMap实现Map '时,以下问题/答案的优点是什么? –
dfb
2012-07-19 19:48:30
@dfb - 不确定你在问什么,但工厂方法的好处在于创建者提供了创建密钥的机制,因为由于类型擦除,只有创建者知道正在使用哪种类型。我觉得现在有点像星际迷航中的VGer。 :) – OldCurmudgeon 2012-07-20 00:42:06