Я пытаюсь реализовать в Groovy MultiMap сам, используя прилагаемый код. Я бы предпочел использовать Java Generics. Но у меня проблема с методом getAt (K k).
Метод get () работает без проблем. Но если я использую getAt () из основного класса:
println consPersonsOld.getAt ('1111')
вызов метода gatAt MultiMap:
class MultiMap<K,V> {
private Map<K,List<V>> map
public List<V> get(K k){
if(map.containsKey(k)){
return (map[k])
}else{
return([])
}
}
//Instead of [k]
public List<V> getAt(K k) {
if(map.containsKey(k)){
return (map[k])
}else{
return([])
}
}
}
я получуошибка:
Исключение в потоке "main" groovy.lang.MissingPropertyException: такого свойства нет: 1111 для класса: com.tcc.util.MultiMap в org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap (ScriptBytecodeAdapter.java: 67) в org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite $ PogoMetaMethodSiteNoUnwrapNoCoerce.invoke (PogoMetaMethodSite.java:225) в org.codehausMetahotaThotaTetaTetaTetaorg.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall (CallSiteArray.java:47) в org.codehaus.groovy.runtime.callsite.AbstractCallSite.call (AbstractCallSite.java:116) в org.coderun.timeCallSite.AbstractCallSite.call (AbstractCallSite.java:128) в com.tcc.GroAiaAdd3Main.main (GroAiaAdd3Main.groovy: 84)
Видимо, код не работает сОбобщение типа K, например, когда я заменяю K на String, все в порядке .... У вас есть идея, как решить эту проблему?