向不可扩展的类java添加新功能

时间:2011-11-27 22:54:21

标签: java function inheritance final

是一种向Java中的不可扩展类(即最终类)添加新功能的方法,我知道使用HashMap向其添加属性的方法。例如,如果我有一个声明为Widget的{​​{1}}类我希望为其添加新属性,请说“串行代码”。那么我可以让你final像这样添加它

HashMap

那么有没有办法为最终类添加新功能,任何建议???谢谢

2 个答案:

答案 0 :(得分:4)

这不会对相关对象添加任何内容;它假设一个合理的hashCode / equals,并且将数据与对象关联。

您可以使用相同的方法和类似于命令模式的东西来将接口实现与对象相关联。

但最好的办法可能是将对象合成到自己的类中。只有您的代码才能使用新功能,因此也可以封装。

(我忽略了通过字节码操作,代理等添加接口的事情。)

答案 1 :(得分:0)

不确定要添加哪种类型的功能,但是您可以使用“类型”模式吗?比较器就是一个例子:http://docs.oracle.com/javase/6/docs/api/java/util/Comparator.html