There are four ways to invoke the constructor.
a.
Normal Java way using new operator
b.
Using coercion with as keyword
c.
Using coercion in assignment
d.
Using named parameters
For example, take below Employee class, I defined one
constructor that takes employee name and id as arguments.
class Employee{
String name
int id
Employee(name,
id){
this.name
= name
this.id
= id
}
}
Using new operator
Employee emp1 = new Employee("Krishna", 123)
Using coercion with
as keyword
Employee emp2 = ["Krishna", 123] as Employee
Using coercion in
assignment
Employee emp3 = ["Krishna", 123]
Find the below working application.
HelloWorld.groovy
class Employee{ String name int id Employee(name, id){ this.name = name this.id = id } } Employee emp1 = new Employee("Krishna", 123) Employee emp2 = ["Krishna", 123] as Employee Employee emp3 = ["Krishna", 123] void printEmployee(Employee emp){ println "name: ${emp.name}, id: ${emp.id}" } printEmployee(emp1) printEmployee(emp2) printEmployee(emp3)
Output
name: Krishna, id: 123
name: Krishna, id: 123
name: Krishna, id: 123
Using named
parameters
If a class has default constructor, then you can create
objects by passing parameters in the form of a map (property/value pairs)
HelloWorld.groovy
class Employee{ String name int id } Employee emp1 = new Employee(name : "Krishna", id : 123) Employee emp2 = new Employee(name : "Krishna") Employee emp3 = new Employee() void printEmployee(Employee emp){ println "name: ${emp.name}, id: ${emp.id}" } printEmployee(emp1) printEmployee(emp2) printEmployee(emp3)
Output
name: Krishna, id: 123
name: Krishna, id: 0
name: null, id: 0
No comments:
Post a Comment