классные издевки с абстрактными методами - PullRequest
2 голосов
/ 08 октября 2009

У меня есть объект Java с именем Parameter, и я пытаюсь смоделировать его с помощью groovy. Параметр - это абстрактный класс с 1 абстрактным методом. Он также имеет неабстрактный метод с именем getName (). Я пытаюсь издеваться над этим в Groovy:

 def p1 = [name:{"p1Name"}] as Parameter

Но я получаю ошибку во время выполнения, потому что я не реализую абстрактный метод. Если я пытаюсь создать макет, зачем мне реализовывать абстрактный метод?

спасибо, Джефф

1 Ответ

3 голосов
/ 08 октября 2009

Путем насмешки, используя карту, вы создаете экземпляр типа Parameter, поэтому он должен реализовывать любые абстрактные методы класса Parameter.

abstract class Parameter {
  abstract String getOtherName() 
  String getName() { return "test" }
}

def p1 = [name:{"p1Name"}, getOtherName:{""}] as Parameter
...