前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Groovy】Groovy 方法调用 ( 使用 对象名.成员名 访问 Groovy 类的成员 | 使用 对象名.‘成员名‘ 访问类的成员 | 使用 对象名[‘成员名‘] 访问类成员 )

【Groovy】Groovy 方法调用 ( 使用 对象名.成员名 访问 Groovy 类的成员 | 使用 对象名.‘成员名‘ 访问类的成员 | 使用 对象名[‘成员名‘] 访问类成员 )

作者头像
韩曙亮
发布2023-03-30 10:20:42
2.3K0
发布2023-03-30 10:20:42
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

一、使用 对象名.成员名 访问 Groovy 类的成员


对 对象名.成员名 赋值 , 相当于执行 setter 方法 ;

代码语言:javascript
复制
/**
 * 创建 Groovy 类
 * 在其中定义 2 个成员
 */
class Student {
    def name
    def age
}

// 实例化 Student 类
def student = new Student()

// 对 对象名.成员名 赋值 , 相当于执行 setter 方法
student.name = "Jerry"
student.age = 16

使用 对象名.成员名 访问成员 , 相当于执行 getter 方法 ;

代码语言:javascript
复制
// 使用 对象名.成员名 访问成员 , 相当于执行 getter 方法
println student.name
println student.age

执行结果 :

代码语言:javascript
复制
Jerry
16

二、使用 对象名.‘成员名’ 访问 Groovy 类的成员


可以使用 对象名.‘成员名’ 访问 Groovy 类的成员 , 这样写的好处是 , 不用将代码写死 , 在运行时可以自由灵活的决定要访问哪个成员 ;

如 : 从配置文件中获取要访问哪个成员 , 或者从服务器端获取要访问的成员 ;

在 Java 中如果要根据字符串决定要访问哪个成员 , 只能通过反射进行访问 ;

代码示例 :

代码语言:javascript
复制
/**
 * 创建 Groovy 类
 * 在其中定义 2 个成员
 */
class Student {
    def name
    def age
}

// 实例化 Student 类
def student = new Student()

// 对 对象名.'成员名' 赋值 , 相当于执行 setter 方法
student.'name' = "Han"
student.'age' = 32

// 使用 对象名.'成员名' 访问成员 , 相当于执行 getter 方法
println student.'name'
println student.'age'

执行结果 :

代码语言:javascript
复制
Han
32

三、使用 对象名[‘成员名’] 访问 Groovy 类的成员


使用 对象名[‘成员名’] 访问 Groovy 类的成员 , 相当于调用类的 getAt 方法 , 该方法的函数原型如下 :

代码语言:javascript
复制
    /**
     * 允许使用下标运算符查找动态属性值
     * <code>bean[somePropertyNameExpression]</code>。
     * groovy的常规属性表示法更简洁,
     * 但只适用于编译时已知的属性名。
     *
     * @param self     访问的对象
     * @param property 访问的属性名称
     * @return 返回属性值
     * @since 1.0
     */
    public static Object getAt(Object self, String property) {
        return InvokerHelper.getProperty(self, property);
    }

代码示例 :

代码语言:javascript
复制
// 对 对象名['成员名'] 赋值 , 相当于执行 setter 方法
student['name'] = "CSDN"
student['age'] = 9

// 使用 对象名['成员名'] 访问成员 , 相当于执行 getter 方法
println student['name']
println student['age']

执行结果 :

代码语言:javascript
复制
CSDN
9

四、完整代码示例


完整代码示例 :

代码语言:javascript
复制
/**
 * 创建 Groovy 类
 * 在其中定义 2 个成员
 */
class Student {
    def name
    def age
}

// 实例化 Student 类
def student = new Student()

// 使用 setter 方法设置成员变量
student.setName("Tom")
student.setAge(18)

// 使用 getter 方法获取成员值
println student.getName()
println student.getAge()


// 对 对象名.成员名 赋值 , 相当于执行 setter 方法
student.name = "Jerry"
student.age = 16

// 使用 对象名.成员名 访问成员 , 相当于执行 getter 方法
println student.name
println student.age


// 对 对象名.'成员名' 赋值 , 相当于执行 setter 方法
student.'name' = "Han"
student.'age' = 32

// 使用 对象名.'成员名' 访问成员 , 相当于执行 getter 方法
println student.'name'
println student.'age'


// 对 对象名['成员名'] 赋值 , 相当于执行 setter 方法
student['name'] = "CSDN"
student['age'] = 9

// 使用 对象名['成员名'] 访问成员 , 相当于执行 getter 方法
println student['name']
println student['age']
println student.getAt("age")

执行结果 :

代码语言:javascript
复制
Tom
18
Jerry
16
Han
32
CSDN
9
9
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-01-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、使用 对象名.成员名 访问 Groovy 类的成员
  • 二、使用 对象名.‘成员名’ 访问 Groovy 类的成员
  • 三、使用 对象名[‘成员名’] 访问 Groovy 类的成员
  • 四、完整代码示例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档