【Groovy】Groovy 方法调用 ( 使用 对象名.成员名 访问 Groovy 类的成员 | 使用 对象名.‘成员名‘ 访问类的成员 | 使用 对象名[‘成员名‘] 访问类成员 )
2023-06-13 09:18:00 时间
文章目录
一、使用 对象名.成员名 访问 Groovy 类的成员
对 对象名.成员名 赋值 , 相当于执行 setter 方法 ;
/**
* 创建 Groovy 类
* 在其中定义 2 个成员
*/
class Student {
def name
def age
}
// 实例化 Student 类
def student = new Student()
// 对 对象名.成员名 赋值 , 相当于执行 setter 方法
student.name = "Jerry"
student.age = 16
使用 对象名.成员名 访问成员 , 相当于执行 getter 方法 ;
// 使用 对象名.成员名 访问成员 , 相当于执行 getter 方法
println student.name
println student.age
执行结果 :
Jerry
16
二、使用 对象名.‘成员名’ 访问 Groovy 类的成员
可以使用 对象名.‘成员名’ 访问 Groovy 类的成员 , 这样写的好处是 , 不用将代码写死 , 在运行时可以自由灵活的决定要访问哪个成员 ;
如 : 从配置文件中获取要访问哪个成员 , 或者从服务器端获取要访问的成员 ;
在 Java 中如果要根据字符串决定要访问哪个成员 , 只能通过反射进行访问 ;
代码示例 :
/**
* 创建 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'
执行结果 :
Han
32
三、使用 对象名[‘成员名’] 访问 Groovy 类的成员
使用 对象名[‘成员名’] 访问 Groovy 类的成员 , 相当于调用类的 getAt 方法 , 该方法的函数原型如下 :
/**
* 允许使用下标运算符查找动态属性值
* <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);
}
代码示例 :
// 对 对象名['成员名'] 赋值 , 相当于执行 setter 方法
student['name'] = "CSDN"
student['age'] = 9
// 使用 对象名['成员名'] 访问成员 , 相当于执行 getter 方法
println student['name']
println student['age']
执行结果 :
CSDN
9
四、完整代码示例
完整代码示例 :
/**
* 创建 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")
执行结果 :
Tom
18
Jerry
16
Han
32
CSDN
9
9
相关文章
- js对象判断方法
- page对象的使用及常见方法
- 【100个 Unity实用技能】| C# 中List 使用Exists方法判断是否存在符合条件的元素对象
- js的sort排序方法_sort对象排序
- 字符串转json对象 java_js中对象转字符串的方法
- java 对象拷贝方法beanutils_java copy方法
- Matlab滤波器设计:滤波器设计规格对象函数fdesign的使用方法
- 对象的新增方法
- 开心档之C# 匿名方法我们已经提到过,委托是用于引用与其具有相同标签的方法。换句话说,您可以使用委托对象调用可由委托引用的方法。匿名方法(Anonymou
- 【C++ 语言】C++字符串 ( string 类 | 创建方法 | 控制台输出 | 字符串操作 | 栈内存字符串对象 | string* )
- 【Groovy】Groovy 方法调用 ( 使用闭包创建接口对象 | 接口中有一个函数 | 接口中有多个函数 )
- 【Groovy】MOP 元对象协议与元编程 ( 方法注入 | 使用 @Category 注解进行方法注入 | 分类注入方法查找优先级 )
- 【Groovy】MOP 元对象协议与元编程 ( 方法委托 | 使用 @Delegate 注解进行方法委托 )
- 数学对象Math ceil()、floor()、round()方法详解编程语言
- Java Connection.createStatement()方法:创建一个Statement对象
- JSP Request.getDateHeader()方法:获取构建Date对象的long值
- 利用Redis存储复杂对象的简单方法(使用redis保存对象)
- JavaScript中Array对象相关的几个方法
- JavaScript对象的属性和方法4种不同的类型
- sqlserver模糊查询常用方法
- JS的Event事件对象使用方法
- 自定义实现Json字符串向C#对象转变的方法
- 复制js对象方法(详解)
- js将json格式内容转换成对象的方法
- javascript中全局对象的parseInt()方法使用介绍
- javascript中全局对象的isNaN()方法使用介绍
- jquery基础教程之deferred对象使用方法
- 将json对象转换为字符串的方法
- JavaScript-RegExp对象只能使用一次问题解决方法
- Lua中让回调函数支持回调对象方法的解决方法
- 浅谈重写window对象的方法
- js使用Array.prototype.sort()对数组对象排序的方法