我正在使用Eclipse和Netbeans,现在更喜欢Netbeans。如果开发java库中的系统类(例如FileReader)有没有办法将该类添加到应用程序中并让本地类取代库副本?
我们的想法是能够在使用普通jdk的同时一次扩充特定的类。
具体来说,我正在使用java.lang.StringBuilder和java.io.FileWriter。
我写了一个修改过的StringBuilder类。如果我在我的目录中创建它: 的java /郎/ FastStringBuilder
javac抱怨我正在尝试编译受限制的包java.lang。
如果我重命名该包,则它不能从不公开的AbstractStringBuilder继承。
他们正在以这种方式变得更加困难。
答案 0 :(得分:4)
在Java中真的是非常糟糕的主意。
您需要自己的FileReader吗? - 将它放入包装中并使用它。
您是否需要使用标准FileReader中的方法? - 将其扩展或包装在您自己的FileReader中并使用它。
但永远不要尝试从任何库替换任何类,无论它们在哪里 - 在JDK或其他第三方框架中。
对于非常罕见和更糟糕的情况,你可以使用AOP,但它真的很痛苦,也是另一个更好的坏主意"。
答案 1 :(得分:1)
而不是
import java.io.FileReader;
你只需要
import package.of.your.FileReader;
使用您的实现而不是标准实现。