博客
关于我
AspectJ中target,this和within的区别
阅读量:147 次
发布时间:2019-02-26

本文共 533 字,大约阅读时间需要 1 分钟。

AspectJ中的三个关键字——this、target和within——各自在描述类型检查中扮演着不同的角色。这些关键字帮助开发者在AspectJ中更精确地控制代码执行逻辑。

this(SomeType)用于检查当前执行对象是否是某种类型。它通过判断当前上下文中的对象是否符合指定的类型来执行相应的逻辑。这在编写跨界面或跨继承层次的逻辑时非常有用。

target(SomeType)则用于检查目标对象是否是某种类型。与this不同,target关注的是被操作对象的属性,而不仅仅是当前上下文。它支持类和接口的检查,并且会自动处理继承关系,使得代码更具灵活性和扩展性。

within(MyClass)用于检查当前执行代码是否属于特定类。它只支持类,而不支持接口,这使得它在控制类级别的行为时非常有用。需要注意的是,within关键字与target和this相比,主要关注的是代码所在的类层次,而不是对象本身。

需要强调的是,within关键字与target和this在支持的类型上有一些差异。target不仅支持类还支持接口,而within仅支持类。此外,target会自动考虑继承关系,而this则不会。因此,在实际编码中,选择合适的关键字对于代码的准确性至关重要。

转载地址:http://omkf.baihongyu.com/

你可能感兴趣的文章
Python删除列表元素的三种方法
查看>>
python初步学习-python数据类型-集合(set)
查看>>
python列表生成字典_Python中将字典转换为列表的方法
查看>>
python列表对应元素合并为列表及判断一个列表是几维
查看>>
python列表去重复后按照顺序_从包含不可共元素的Python列表中删除重复元素,同时保留顺序?...
查看>>
python列表前几个_python之列表
查看>>
python列表元组
查看>>
Python列表/元组/字典和集合使用
查看>>
python列表 行列选择_python_pandas_dataframe_行列选择_切片操作
查看>>
python列表
查看>>
python列出当前目录、子目录和文件的脚本
查看>>
python+flask计算机毕业设计骨科门诊患者档案管理系统(程序+开题+论文)
查看>>
python+flask计算机毕业设计高校体测管理系统的设计与实现(程序+开题+论文)
查看>>
Python切片对象和__getitem__
查看>>
python+flask计算机毕业设计高校体育赛事系统(程序+开题+论文)
查看>>
python+flask计算机毕业设计高校体育运动会比赛系统(程序+开题+论文)
查看>>
python+flask计算机毕业设计高校危化品管理系统(程序+开题+论文)
查看>>
python+flask计算机毕业设计高校教学档案管理系统(程序+开题+论文)
查看>>
python+flask计算机毕业设计高校教学督导平台(程序+开题+论文)
查看>>
python+flask计算机毕业设计高校数字化迎新系统(程序+开题+论文)
查看>>