1

在 C# 和 Objective C 等某些语言中,您可以创建类扩展。这意味着您可以向现有类添加其他方法,而无需扩展该类。这在Java中可能吗?

4

5 回答 5

8

正如奥利所说,这是不可能的。

值得一提的是,C# 中的扩展方法只是调用静态方法的一种奇特方式,所以虽然看起来像

someobject.MyExtensionMethod();

然后编译器将其转换为

SomeStaticClass.MyExtensionMethod(someobject);

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

于 2011-12-11T18:46:46.910 回答
3

不,不是标准 Java。

于 2011-12-11T18:44:53.163 回答
1

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

于 2011-12-11T18:49:16.640 回答
1

我不知道允许你这样做的语言结构,但你可以使用装饰器模式来实现你的目标。

于 2011-12-11T18:49:18.683 回答
0

使用 lombok 库可以做到这一点。有一个名为@ExtensionMethod 的注解。

这为您提供了该功能。

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

于 2015-05-26T14:54:01.037 回答