2009-07-28 146 views
10

如果我有這樣的代碼:Groovy的地圖語法錯誤


import javax.swing.* 
import java.awt.image.* 

def xMap = [ 
    BufferedImage.TYPE_3BYTE_BGR  : "3 byte BGR", 
    BufferedImage.TYPE_4BYTE_ABGR : "4 byte ABGR", 
] 

IDE將生成此錯誤:

illegal colon after argument expression; 
    solution: a complex label expression before a colon must be parenthesized at

是否有另一種解決方案,這比寫:


def type_3byte_bgr = BufferedImage.TYPE_3BYTE_BGR 

所有的常量?

回答

20

地圖文字要求其鍵必須是有效的標識符或括號內。這應該工作:

def xMap = [ 
    (BufferedImage.TYPE_3BYTE_BGR)  : "3 byte BGR", 
    (BufferedImage.TYPE_4BYTE_ABGR) : "4 byte ABGR",] 
2

錯誤消息告訴你如何解決它:括號標籤表達式。

import java.awt.image.BufferedImage 

def xMap = [ 
    (BufferedImage.TYPE_3BYTE_BGR)  : "3 byte BGR", 
    (BufferedImage.TYPE_4BYTE_ABGR) : "4 byte ABGR", 
] 

println xMap[BufferedImage.TYPE_3BYTE_BGR] 
+4

請控制你的語言。 – Geo 2009-07-28 19:12:03