Например, у LibGDX framework есть пользовательские коллекции, такие как Array<T>
и ObjectMap<K, V>
, которые помогают производительности приложений/игр. Можно ли создать литерала для инициализации, чтобы Array
мог быть инициализирован, например, [1,2,3,4]
и ObjectMap
с [key:"value"]
.Возможно ли реализовать инициализаторы литеральных литералов для пользовательских классов в Groovy?
Я знаю, что операторы доступа []
могут быть добавлены к объектам путем реализации методов putAt
/getAt
, но ничего не видели об буквальных инициализаторах.
Заблокированы ли они самим языком, как переопределение оператора в Java или есть способ создать инициализаторы списка/карты для пользовательских классов?
Можете ли вы привести пример того, что вы имеете в виду? –
Я думаю, что OP хочет получить ObjectMap от чего-то вроде '[x: 42]' вместо 'LinkedHashMap' (и я предполагаю, что это невозможно). @MrPlow вы можете по крайней мере избавиться от некоторого повторения с 'with'. – cfrick
: '' [x: 42] как ObjectMap' не работает? –