2016-03-27 74 views
-1

我不得不修改JavaFX中的内置类,因为我需要的方法是私有的,我将其更改为public。好的,我在/usr/lib/jvm/jdk1.8.0_66/javafx-src.zip中找到了源代码,我修改了代码,重新启动了Eclipse,我可以看到Eclipse中的修改,当我去定义内置的类,但Eclipse仍然说为所需的方法,它不可见。我认为问题是,我必须重新编译内置类。我怎么能做到这一点,我在互联网上搜索了很多,我没有找到答案。重新编译Java内置类

+2

你可能会更好地解释_why_你需要公开一个私人功能,这是一个非常糟糕的主意 – tddmonkey

+1

几乎可以肯定有更好的方法来做任何你想做的事情。 (并且使用Reflection可能是最差的选项) –

+1

您**可能**能够使其在您的机器上工作;但它不能与任何其他已安装的Java版本一起工作(并且它不会再是** Java了)。 –

回答

1

在我回答这个问题之前,让我先说清楚这是一种不好的做法,而且这种做法是错误的。

但是,如果你真的想有一个工作,你可以得到该类的源代码。

更改类本身的名称并将其添加到您的类路径中并使用它。 您可以在此类文件中进行重新编辑。

+0

我不认为这会起作用,因为该类引用了其他私有API类;所以重命名的类不会自行编译。你基本上需要重建源代码的整个部分。但是,正如你所说,你根本就不应该这样做。 –

+0

确实如此。这是一个不好的做法。 – Amriteya