在 C# 和 Objective C 等某些语言中,您可以创建类扩展。这意味着您可以向现有类添加其他方法,而无需扩展该类。这在Java中可能吗?
问问题
3232 次
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 回答