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



是在Java中添加新功能到不可扩展类即(最终类)的一种方法,我知道使用HashMap添加属性的方法。例如,如果我有一个声明finalWidget类,我想为它添加一个新属性,让我们说'串行代码',那么我可以将HashMap添加为这样

serialHashMap.put(widgetObject,serialNumber);

那么有没有办法在final类中添加新功能,有什么建议吗??由于

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

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

不过,您最好的选择可能是将对象合成到您自己的类中。只有您的代码才能使用新功能,所以最好将其封装起来。

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

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

最新更新