Описание тега expandometaclass

4 ответа

Скопируйте свойства класса Groovy

Я хочу скопировать свойства объекта в другой объект общим способом (если свойство существует для целевого объекта, я копирую его из исходного объекта). Мой код работает нормально, используя ExpandoMetaClass, но мне не нравится решение. Есть ли други…
8 ответов

Ярлык для создания карты из списка в Groovy?

Я хотел бы что-то вроде этого: Map rowToMap(row) { def rowMap = [:]; row.columns.each{ rowMap[it.name] = it.val } return rowMap; } учитывая то, как работает GDK, я бы ожидал, что смогу сделать что-то вроде: Map rowToMap(row) { row.columns.collectMap…
20 авг '08 в 18:37
1 ответ

Как изменить метакласс класса для каждого теста

Я использую ExpandoMetaClass, чтобы сервис всегда возвращал успех в интеграционном тесте, но мне бы хотелось иметь один тест, который на самом деле не проходит. Пример использования ExpandoMetaClass: static { ExpandoMetaClass someService = new Expan…
1 ответ

Используя ExpandoMetaclass в отличном результате печати и нулевом значении также

Пример прогы, когда я пытаюсь запустить с использованием техники расширенного класса, он дает мне два результата: один желаемый результат, второй - "ноль" в качестве выхода, откуда берется ноль? class testA { static def X(def var) { Y(var) } static …
28 окт '11 в 03:37
1 ответ

Как сохранить метакласс сервиса от переопределения

Я пытаюсь смоделировать вызов внешнего сервиса в интеграционном тесте, сервис используется в веб-потоке grails. Служба не входит в поток или область диалога, но добавляется через внедрение зависимостей, см. Здесь. Мне удалось найти способ переопреде…
1 ответ

Поведение метакласса Expando зависит от того, определен ли класс пользователем или нет?

Экспериментируя с ExpandMetaClass, я столкнулся с таким поведением: class A {} A.metaClass.foo = { 0 } A.metaClass.foo = { 1 } println (new A().foo()) A.metaClass.foo = { 2 } println (new A().foo()) Collection.metaClass.foo = { 0 } Collection.metaCl…
04 июн '14 в 14:07
1 ответ

Область применения Groovy ExpandoMetaClass?

Groovy выставляет ExpandoMetaClass это позволяет вам динамически добавлять методы / свойства экземпляра и класса в POJO. Я хотел бы использовать его для добавления метода экземпляра к одному из моих классов Java: public class Fizz { // ...etc. } Fiz…
06 ноя '13 в 19:32
2 ответа

Класс частичного пересмешивания с несколькими статическими методами с GMock

Я использую GMock для добавления модульного тестирования в наши существующие проекты Java. У нас есть несколько мест, где методы, которые необходимо протестировать, являются статическими методами, которые используют дополнительные статические методы…
23 фев '12 в 22:51
1 ответ

Различие в поведении Grails между run-app и run-war

Я относительно новичок в Groovy и Grails и пробую их в свое свободное время. У меня есть небольшое тестовое приложение Grails, которое я могу нормально запускать, используя grails run-app, но grails run-war приводит к ошибке. в grails-app/conf/BootS…
1 ответ

Использование мета-класса Groovy для реализации специальных методов

Я пытаюсь изменить метакласс для JSONObject в Groovy, чтобы он вел себя как можно больше, как обычная карта Groovy. Когда я реализую методы в метаклассе, некоторые из них просты, как JSONObject.metaClass.size в приведенном ниже примере. У JSONObject…
1 ответ

Результат замены / переопределения беспараметрического метода, не переданного в конструктор

Я пытаюсь изменить поведение конструктора класса groovy, заменив метод в этом классе, который используется для установки свойства, но свойства не устанавливаются с ожидаемыми значениями. class TestClass { def noParam def withParam TestClass() { noPa…
13 июн '13 в 20:46
1 ответ

Переопределите метод toString JList с помощью метакласса Groovy для расширения, чтобы отобразить экземпляры классов Groovy.

В отличном приложении Swing у меня есть класс, который представляет учителей следующим образом: Docente.groovy public class Docente { String codigo String nombre String apellidoPaterno String apellidoMaterno String direccion String tipoDocumento Str…
13 июл '12 в 16:43
1 ответ

ExpandoMetaClass - Статические методы + синглтон + перегруженные функции

Использование ExpandoMetaClass Статические методы могут быть добавлены динамически, как я могу использовать этот ExpandoMetaClass в объекте Singleton с перегруженной статической функцией в нем, скажем, пример программы необходимо переписать с исполь…
25 окт '11 в 17:16
2 ответа

Какой элегантный способ иметь повторно используемый код метакласса в Groovy?

Я хотел бы применить преобразование метапрограммирования к некоторым из моих классов, скажем, путем добавления методов printXxx, например так: class Person { String name } def p = new Person() p.printName() // does something Я имею грубое представле…
21 ноя '14 в 14:23
1 ответ

Где правильно инициализировать метаклассы Groovy?

В приложении Groovy, если вы хотите инициализировать метаклассы, где лучше всего разместить эти инициализации? В приложениях Grails я использовал файл Bootstrap.groovy. Есть ли что-то подобное для произвольного приложения Groovy? Редактировать: Чтоб…
01 авг '11 в 19:30
1 ответ

В Groovy, когда имеет смысл использовать Expando против оператора "как" и замыканий?

Groovy - это замечательный язык, который предлагает много разных вариантов. Размышляя о модульных тестах, когда имеет смысл использовать объект Expando вместо оператора "как" с замыканиями? http://groovy.codehaus.org/Developer+Testing+using+Maps+and…
1 ответ

Получение org.codehaus.groovy.control.MultipleCompilationErrorsException с использованием плагина gmaven

Это мой пример программы, при компиляции с использованием mvn он выдает ошибку компиляции, я пытаюсь добавить статические методы с использованием ExpandoMetaClass - @Singleton class ThrowError { def parse () { println "Anish" } } ThrowError.metaClas…
29 окт '11 в 16:40
1 ответ

ExpandoMetaClass в Grails для переопределения поведения в библиотеке Java?

Я использую Grails со сторонними библиотеками Java, и я хотел бы переопределить поведение в одной из этих библиотек. Я попытался сделать это в Bootstrap.groovy, вот так: // class overrides ExpandoMetaClass.enableGlobally() SimpleStringFilter.metaCla…
27 фев '15 в 17:35
1 ответ

Как добавить новое замыкание в класс в Groovy

Из Snipplr Хорошо, вот код скрипта, в комментариях есть вопрос и выброшено исключение class Class1 { def closure = { println this.class.name println delegate.class.name def nestedClos = { println owner.class.name } nestedClos() } } def clos = new Cl…
2 ответа

Grails: ExpandoMetaClass для метода

Рассмотрим метод def public Set<AgeRange> getAgeRanges(boolean excludeSenior) { -- something --- } как написать ExpandoMetaClass для этого как ClassName.metaClass.methodName << { boolean excludeSenior-> -- something --- }
17 июн '14 в 09:26