是向Java中的不可扩展类(即最终类)添加新功能的一种方法,我知道使用HashMap
.for为其添加属性的方法例如,如果我有一个声明final
一个Widget
类,我想添加一个新的属性,它让我们说“序列码”,那么我可以为您的HashMap
添加像这样将新功能添加到不可扩展类java
serialHashMap.put(widgetObject,serialNumber);
所以是有办法向最终课堂添加新功能,任何建议?谢谢
是向Java中的不可扩展类(即最终类)添加新功能的一种方法,我知道使用HashMap
.for为其添加属性的方法例如,如果我有一个声明final
一个Widget
类,我想添加一个新的属性,它让我们说“序列码”,那么我可以为您的HashMap
添加像这样将新功能添加到不可扩展类java
serialHashMap.put(widgetObject,serialNumber);
所以是有办法向最终课堂添加新功能,任何建议?谢谢
这不会增加任何问题的对象;它假设一个合理的hashCode/equals,并且将该数据与该对象联系起来。
您可以使用相同的方法和类似命令模式的东西将接口实现与对象相关联。
尽管如此,最好的办法可能是将对象合成到自己的类中。只有你的代码将能够使用新的功能,所以它可能被封装。
(我忽略的东西想通过字节码操作,代理添加接口,等等。)
不知道到底要添加什么类型的功能,但你可以使用“类型类”模式?比较器就是一个例子:http://docs.oracle.com/javase/6/docs/api/java/util/Comparator.html
你需要解决的实际问题是什么? –