blob: d525dee929e3f92bd6bc226ce96ae44e96439e9b [file] [log] [blame]
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>