Java中@override和Python中@decorator的区别
我阅读了一些文档,发现Java中的@override
和Python中的@decorator
之间似乎存在某种关系
有人能用简单的英语解释一下这种关系吗
我知道Python中的函数是第一类对象,函数可以是另一个函数的参数
Java中的@override
语法与Python中的装饰器有何不同
你可以在下面搜索框中键入要查询的问题!
我阅读了一些文档,发现Java中的@override
和Python中的@decorator
之间似乎存在某种关系
有人能用简单的英语解释一下这种关系吗
我知道Python中的函数是第一类对象,函数可以是另一个函数的参数
Java中的@override
语法与Python中的装饰器有何不同
# 1 楼答案
Java中的
@override
和Python中的@decorator
之间没有关系Java中的
@override
是一个注释,它将一个方法标记为覆盖另一个方法。所以当我扩展一个基类并覆盖它的某个方法时,我可以用@override
注释这个方法。这对我的代码没有实际影响,只是给编译器一个提示。像马蒂恩·彼得斯所建议的那样,更多信息请参见What's "@Override" there for in java?Python中的
@decorator
是一种设计模式。装饰器可以附加到方法以扩展其功能。如果调用了一个方法,它的装饰程序将在调用之前被调用。例如,您可以使用它来记录信息。我曾在一个项目中使用过它来启用缓存与Java中的@decorator最相似的是定义一个注释,它可以像decorator一样工作,也可以使用AspectJ这样的库。然而,这不是核心Java语言的一部分,因为它根本不知道任何装饰器注释。装饰器和注释是两码事