2009-07-28 38 views
10

Nếu tôi có mã này:đồ Groovy lỗi cú pháp


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

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

IDE sẽ tạo ra lỗi này:

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

Có một giải pháp cho điều này hơn để viết:


def type_3byte_bgr = BufferedImage.TYPE_3BYTE_BGR 

cho tất cả các hằng số?

Trả lời

20

Thứ nguyên bản đồ yêu cầu khóa phải là số nhận dạng hợp lệ hoặc trong dấu ngoặc đơn. Điều này sẽ hoạt động:

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

Thông báo lỗi cho bạn biết cách giải quyết: ngoặc đơn biểu thức nhãn.

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

Kiểm soát ngôn ngữ của bạn. – Geo