On 23.03.2017 11:56, paul wrote:
Suppose I have two Classes, one extending the other:

class Person{ String name, int age}
class Pupil extends Person {int grade}

Now to manage several Persons in a List, and add some custom methods, I
use the @Delegate like

class Personlist{
  @Delegate List<Person> persons

  Personlist underAge(n){persons.findAll{it.age<=n} as Personlist}
}

Pupillist should have the same methods (since each pupil is a person):

class Pupillist extends Personlist{
  Pupillist inGrade(g){persons.findAll{it.grade==g} as Pupillist}
}

Now I want to chain several of these methods like this:
def pl = [...] as Pupillist
pl.underAge(12).inGrade(9)

throws a MissingMethodException, because `pl.underAge` gets cast into a
Personlist, which has no method `inGrade`.


How about not working with Delegate and instead use a category for the methods and just return a list?

bye Jochen

Reply via email to