例如,java.io.File只是一个具体类。 我的替代品支持解析Windows快捷方式。 我需要预处理构造函数参数以解析可能的.lnk文件,因为执行规范化/规范化/解析抽象路径的FileSystem对象不可访问。 需要预处理的规则排除了纯子类化 - 无法在调用super(...)之前进行预处理,并且File是不可变的。 因此,我扩展File并使用委托,覆盖所有File的构造函数和方法(在所有构造函数中都调用super(""))。
这很好用,但显然不是理想的 - 如果File发生更改,则不会覆盖任何新方法或构造函数,并且这将公开潜在的空抽象路径名。 我错过了一些明显的东西吗? 看起来应该有更简单/更好的方法。
这很好用,但显然不是理想的 - 如果File发生更改,则不会覆盖任何新方法或构造函数,并且这将公开潜在的空抽象路径名。 我错过了一些明显的东西吗? 看起来应该有更简单/更好的方法。