我目前正在开发一个多线程框架。为了避免副作用,我想要求框架操作的所有数据都必须是不可变的。
那么Java中是否存在一种方法来指定我希望给定类的所有子类或实现给定接口的所有类都是不可变的?
我建议调查一下变异性检测器 http://code.google.com/p/mutability-detector/。它执行静态分析以确定给定类是否是不可变的。它可用于添加类似于运行时断言的内容,即,如果传递了可变类的实例,您可以选择抛出异常。请注意,它可以在运行时分析实际的具体类,包括您定义的接口的子类或实现。
它仍然是 1.0 之前的版本,并且存在以下问题java.lang.String
,但它可能有用。如果它接近您正在寻找的内容,但不太符合您的要求,我建议您联系邮件列表或提交错误报告,因为我相信项目维护者是一个相当通情达理的人。免责声明:维护者是我;-)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)