如何在J2ME波兰语二进制文件中覆盖一个类?

时间:2008-10-26 10:25:09

标签: java-me j2mepolish

我正在使用J2ME Polish的UI组件。我在代码中发现了一个简单的错误,并希望快速修复它,但在下载包中找不到任何构建脚本,尽管包含了源代码。

问题无法通过扩展类来解决,因为它涉及具有私有访问权限的成员。

我应该如何修复它?我应该简单地用Javac编译有问题的类,还是应该尝试在他们的存储库中找到构建脚本?

2 个答案:

答案 0 :(得分:1)

J2MEPolish UI库没有二进制代码,因为在应用程序编译期间也会对这些类进行预处理。这就是为什么J2MEPolish UI部分也没有构建脚本的原因 - 如果编译的话,生成的二进制文件没有任何意义:)

如果您直接使用此UI类(不涉及波兰魔法),我建议将其复制到您自己的项目中,在那里进行更改,您应该没问题。

但是有一个小问题。我不是百分百肯定,但是波兰语的构建过程应该如下:首先对你的类进行预处理,然后对波兰语类进行预处理。如果您复制到项目中的UI组件将保留在同一个Java包中,那么您的更改可能会被错误的波兰语实现覆盖。您可以通过运行应用程序或查看构建目录中的最终Java代码来检查它。

如果覆盖问题发生,那么你有两个选择 - 将项目中的UI类移动到不同的包中(我99%确定如果你直接使用它应该没问题)或者你需要修改波兰语构建过程,所以它会首先预处理波兰语类,你可以覆盖它所做的更改。

/ JaanusSiim

答案 1 :(得分:1)

我知道这个问题已被回答并被接受,但更简单的方法是使用他们的内置属性(对于通过魔术搜索引擎来到这里的任何人)

polish.client.source=/projecthome/j2me-polish-source

这只是与安装程序一起打包的源代码的副本。您可以将其复制到您自己的源代码树中,从而获得更改的版本历史记录。

虽然JaanusSiim的方法可能有效但我不推荐它,因为在你自己的源代码树中使用de.enough。**包会让我感到困惑我通常为我的个人来源和src创建一个src-j2mepolish对于他们的源文件,这是非常明确我添加到标准版本的内容。