2016-04-04 23 views
3

içindeki tipi Haritasının bir öznitelik başvururken, neden bir harita özelliğinde hakkında derleyici şikayet etmez ancak niteliklerin değil diğer türleri: Bir kapatma içHata Aşağıdaki kod segmenti bir kapatma

import groovy.transform.CompileStatic 

@CompileStatic 
class TestMapInClosure { 

    Map amap = [:] 
    List alist = [] 
    Integer intval = 0 

    Closure doFoo = {   
     this.amap['one'] = 'two' // !! [Static type checking] - No such property 
     this.alist.push(1) 
     this.intval += 5 
    } 
} 

this gerekiyordu Bir şeyi doğru anlarsam, sınıflandırma örneğinin örneğine başvurulur.

Not: Groovy Versiyon: 2.4.5 Eğer hattı değiştirmek sanki

cevap

1

, CompileStatic açıklama bir hata gibi görünüyor:

this.amap += [one:'two'] 

Ya

this.amap.one = 'two' 

Sonra iyi çalışıyor. Sanırım bu, [] harita erişimcisinin semantiklerinden kaynaklanıyor. Yapabilirsin sumbit it as a bug

ve tamir edilebilir eğer

+0

'this.amap.putAt ('tek', 'iki')' de çalışır bakın. – ChrLipp