Разрешающий класс Groovy Map - PullRequest
       3

Разрешающий класс Groovy Map

7 голосов
/ 06 ноября 2010

Любой может объяснить, почему вызов [:]. Class на карте возвращает ноль, а вызов [:]. GetClass () возвращает ожидаемый результат Map. Смотрите пример ниже

1

["test",[test:"test"],23].each {     
  println it.class 
}
class java.lang.String
null
class java.lang.Integer

2-

["test",[test:"test"],23].each {     
  println it.getClass()
}
class java.lang.String
class java.util.LinkedHashMap
class java.lang.Integer

Ken

1 Ответ

11 голосов
/ 06 ноября 2010

Вот ответ

http://jira.codehaus.org/browse/GROOVY-1824

РЕДАКТИРОВАТЬ - конечно. Я думаю, что семантика карты такова, что если у вас есть

def m = [one:1, two:2]

вы должны иметь возможность доступа к записям на карте, например

m.one

другими словами, доступ к карте похож на получение свойства объекта карты. Если

m.class 

вернул класс, он нарушил бы эту семантику, потому что «класс» не является ключом, добавленным программистом на карту.

Вот что я собираю ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...