在某些语言(例如C#和Objective C)中,您可以创建类扩展。 这意味着您可以在现有类中添加其他方法,而不必扩展该类。 这在Java中可行吗?

===============>>#1 票数:7 已采纳

正如Oli提到的那样,这是不可能的。

值得一提的是,C#中的扩展方法只是一种调用Static方法的奇特方法,因此尽管它看起来像

someobject.MyExtensionMethod();

然后编译器将其转换为

SomeStaticClass.MyExtensionMethod(someobject);

您并没有真正在对象上添加方法

===============>>#2 票数:3

不,不是标准Java。

===============>>#3 票数:1

您可以使用使用编译时编织的AspectJ添加到字节码。

===============>>#4 票数:1

我不知道可以使用哪种语言构造,但是可以使用Decorator模式实现目标。

===============>>#5 票数:0

lombok库可以做到这一点。 有一个称为@ExtensionMethod的注释。

这为您提供了该功能。

参见https://projectlombok.org/features/experimental/ExtensionMethod.html

  ask by aryaxt translate from so

未解决问题?本站智能推荐: