2009-07-28 10 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