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