2011-11-27 40 views
1

是向Java中的不可扩展类(即最终类)添加新功能的一种方法,我知道使用HashMap .for为其添加属性的方法例如,如果我有一个声明final一个Widget类,我想添加一个新的属性,它让我们说“序列码”,那么我可以为您的HashMap添加像这样将新功能添加到不可扩展类java

serialHashMap.put(widgetObject,serialNumber); 

所以是有办法向最终课堂添加新功能,任何建议?谢谢

+0

你需要解决的实际问题是什么? –

回答

4

这不会增加任何问题的对象;它假设一个合理的hashCode/equals,并且将该数据与该对象联系起来

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

尽管如此,最好的办法可能是将对象合成到自己的类中。只有你的代码将能够使用新的功能,所以它可能被封装。

(我忽略的东西想通过字节码操作,代理添加接口,等等。)