2

我正在使用 Eclipse 和 Netbeans,现在更喜欢 Netbeans。如果开发 Java 库中的系统类(例如 FileReader),有没有办法将该类添加到应用程序中并让本地类取代库副本?

这个想法是能够在仍然使用普通 jdk 的同时一次增加一个特定的类。

具体来说,我正在使用 java.lang.StringBuilder 和 java.io.FileWriter。

我写了一个修改过的 StringBuilder 类。如果我在我的目录中创建它:java/lang/FastStringBuilder

javac 抱怨我正在尝试编译一个受限包 java.lang。

如果我重命名包,那么它不能从非公开的 AbstractStringBuilder 继承。

他们使这种方式变得比需要的更难。

4

2 回答 2

1

在 Java 中,这真的是一个非常糟糕的主意。

您需要自己的 FileReader 吗?- 将其放入您的包装中并使用它。

您需要使用标准 FileReader 中的方法吗?- 在您自己的 FileReader 中扩展或包装它并使用它。

但是永远不要尝试替换任何库中的任何类,无论它们在 JDK 或其他第三方框架中的位置。

对于非常罕见和更糟糕的情况,您可以使用 AOP,但这真的很痛苦,也是另一个“更好的坏主意”。

于 2017-10-29T23:43:24.117 回答
0

代替

import java.io.FileReader;

您只需要

import package.of.your.FileReader;

使用您的实现而不是标准实现。

于 2017-10-29T23:02:28.970 回答