如何处理 J2ME 上缺少的最常见类
我正在尝试编写一个运行不同Java平台的应用程序,如J2SE,J2ME,Android等。我已经知道我必须为每个平台重写大部分UI,但希望重用核心逻辑。
保持这个核心可移植性涉及我所知道的三个缺点:
- 保持旧的Java 1.4语法,不使用Java 5.0的任何不错的语言功能
- 仅使用已知可在这些平台上工作的外部库(即:不要使用 JNI,并且不依赖于其他违反此规则的库)
- 仅使用所有这些平台上存在的类
我知道克服(1)的方法:以5.0风格编写代码并自动将其转换为1.4(retroweaver - 尚未尝试过,但似乎还可以)。
我认为(2)是一个我必须接受的问题。
现在我想知道(3)的最佳工作周期是什么,特别是我最想念的集合类。我能想到这些:
- 我认识的大多数程序员只是不使用 、 、 等,而是回退到和普通数组。我认为这首先使代码变得丑陋。但我也知道,在或之间做出正确的选择对于性能至关重要,并且始终使用和 Arrays 不可能是正确的。
Set
Map
List
Vector
TreeSet/Hashset
LinkedList/ArrayList
Vector
- 我可以编写我自己的类的实现。这似乎是在重新发明轮子,我认为我无法像其他人那样做得那么好。
- 由于Java是开源的,因此在为J2ME构建时,我可以获取J2SE集合框架的源代码并将其包含在我的应用程序中。不过,我不知道这是否是一个好主意。有充分的理由不这样做。
- 也许已经存在库,它们重建了集合框架中最重要的功能,但针对低端系统进行了优化,通过不实现不经常使用的功能来说明。你知道吗?
感谢您的回答和意见!
编辑:我终于找到了一个(复杂但很好)的解决方案,我认为通过提供我自己的答案并接受它,解决方案将在顶部变得可见。但恰恰相反,我的答案仍然在最底层。