26

如果我有这个代码:


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

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

IDE 将生成此错误:

参数表达式后的非法冒号;
   解决方案:冒号前的复杂标签表达式必须用括号括起来

除了写之外,还有其他解决方案吗:


def type_3byte_bgr = BufferedImage.TYPE_3BYTE_BGR

对于所有的常数?

4

2 回答 2

51

映射文字要求它们的键是有效的标识符或括号。这应该有效:

def xMap = [
    (BufferedImage.TYPE_3BYTE_BGR)     : "3 byte BGR",
    (BufferedImage.TYPE_4BYTE_ABGR)    : "4 byte ABGR",]
于 2009-07-28T19:09:56.033 回答
3

错误信息告诉你如何解决它:给标签表达式加上括号。

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]
于 2009-07-28T19:09:17.377 回答