创建类的扩展?

时间:2011-12-11 18:43:53

标签: java class-extensions

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

5 个答案:

答案 0 :(得分:7)

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

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

someobject.MyExtensionMethod();

然后编译器将其转换为

SomeStaticClass.MyExtensionMethod(someobject);

您并非真正向对象添加方法

答案 1 :(得分:3)

不,不是标准Java。

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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

答案 4 :(得分:0)

这可以使用lombok库。有一个名为@ExtensionMethod的注释。

这为您提供了这项功能。

请参阅https://projectlombok.org/features/experimental/ExtensionMethod.html