Groovy and Grails Recipes翻译之旅——面向对象的Groovy(10)

4.10.           JavaGroovy构建器的不同之处?

Java一样,如果没有显式定义构建器,您会得到一个无参数的默认的构建器;与Java不同的是,Groovy中您可以多种方式调用构建器,如下面的例子。

假设您有一个Employee类:

class Employee{

  String firstName,lastName

  Employee(firstName, lastName){

    this.firstName = firstName

    this.lastName = lastName

  }

}

 

您可通过以下几种方式调用Employee类:

l  Java的方式

def employee = new Employee('Bashar','AbdulJawad')

l  显式类型转换

employee = ['Bashar','Abdul Jawad'] as Employee

l  隐式类型转换

Employee employee2 = ['Bashar','AbdulJawad']

l  隐式构建器

Employee employee3

employee3  =  ['Bashar','Abdul']

 

您也可以使用命名参数调用构建器。给定如下一个类:

class Employee{

  String firstName, lastName

}

您可调用下面任意一个构建器:

new Employee()

new Employee(firstName: 'Bashar')

new Employee(lastName: 'AbdulJawad')

new Employee(firstName: 'Bashar', lastName: 'AbdulJawad')

 

使用命名参数来调用构建器是非常有用的,因为您不必为每个可能字段组合显式定义单独的构建器。 Groovy 自动为您生成各种组合的构建器。

你可能感兴趣的:(java,grails,groovy)