| import groovy.transform.TupleConstructor |
| |
| @TupleConstructor() |
| class Person { |
| String name |
| private boolean active = false |
| List likes |
| } |
| |
| println new Person<warning descr="Constructor 'Person' in 'Person' cannot be applied to '(java.lang.String, [java.lang.String, java.lang.String], java.lang.Boolean)'">('mrhaki', ['Groovy', 'Java'], true)</warning> |
| println new Person('mrhaki', ['Groovy', 'Java']) |
| println new Person('mrhaki') |
| |
| //------------------------------- |
| |
| @TupleConstructor(includeFields=true) |
| class Person2 { |
| String name |
| List likes |
| private boolean active = false |
| } |
| |
| println new Person2('mrhaki', ['Groovy', 'Java'], true) |
| println new Person2('mrhaki', ['Groovy', 'Java']) |
| println new Person2<warning descr="Constructor 'Person2' in 'Person2' cannot be applied to '(java.lang.String, java.lang.Boolean, [java.lang.String, java.lang.String])'">('mrhaki', true, ['Groovy', 'Java'])</warning> |
| |
| //------------------------------- |
| |
| @TupleConstructor(force=true) |
| class Person3 { |
| String name |
| List likes |
| private boolean active = false |
| |
| Person3(boolean active) { |
| this.active = active |
| } |
| } |
| |
| println new Person3('mrhaki', ['Groovy', 'Java']) |
| println new Person3<warning descr="Constructor 'Person3' in 'Person3' cannot be applied to '(java.lang.String, [java.lang.String, java.lang.String], java.lang.Boolean)'">('mrhaki', ['Groovy', 'Java'], true)</warning> |
| println new Person3(true) |
| println new Person3<warning descr="Constructor 'Person3' in 'Person3' cannot be applied to '(java.lang.Boolean, java.lang.Boolean)'">(true, false)</warning> |
| |
| //------------------------------- |
| |
| @TupleConstructor(includeFields=true) |
| class Person4 { |
| String name |
| List likes |
| private boolean active = false |
| } |
| |
| @TupleConstructor(callSuper=true, includeSuperProperties=true, includeSuperFields=true) |
| class Student extends Person4 { |
| List courses |
| } |
| |
| println new Student('mrhaki', ['Groovy', 'Java'], true, ['IT']) |
| println new Student<warning descr="Constructor 'Student' in 'Student' cannot be applied to '(java.lang.String, [java.lang.String, java.lang.String], [java.lang.String])'">('mrhaki', ['Groovy', 'Java'], ['IT'])</warning> |
| println new Student<warning descr="Constructor 'Student' in 'Student' cannot be applied to '(java.lang.String, [java.lang.String, java.lang.String], [java.lang.String], java.lang.Boolean)'">('mrhaki', ['Groovy', 'Java'], ['IT'], true)</warning> |
| |
| //------------------------------- |
| |
| @TupleConstructor(excludes="name, active") |
| class Person5 { |
| String name = "" |
| List likes = [] |
| private boolean active = false |
| } |
| println new Person5<warning descr="Constructor 'Person5' in 'Person5' cannot be applied to '(java.lang.String, [java.lang.String, java.lang.String])'">('mrhaki', ['Groovy', 'Java'])</warning> |
| println new Person5(['Groovy', 'Java']) |
| println new Person5<warning descr="Constructor 'Person5' in 'Person5' cannot be applied to '(java.lang.String, [java.lang.String, java.lang.String], java.lang.Boolean)'">('mrhaki', ['Groovy', 'Java'], true)</warning> |
| println new Person5<warning descr="Constructor 'Person5' in 'Person5' cannot be applied to '(java.lang.Boolean)'">(true)</warning> |