为 BlackBerry 构建 Java-ME 应用程序是一个两步过程。首先将 java 源代码编译为类文件,然后将这些类文件再次编译为 .cod 文件,该文件可以部署到模拟器或设备上。
'rapc' 是 RIM 编译器,它采用 java 程序并将它们转换为 cod 或 ax 文件以进行部署。'rapc' 可以采用 java 源代码或已编译的 java 类。无论哪种方式,它都可以产生适合设备的输出。
从 Java 源文件开始时,您可以将它们显式编译为类文件并将这些类文件交给,rapc
或者您可以将 Java 源代码传递给 rapc,它将直接编译源代码。 rapc
当出现 java 源代码时,只是遵从 JDK javac 编译器。这意味着标准的 java JDK 编译器始终用作编译 BlackBerry 应用程序的第一步,我们可以查看标准的 java 行为以了解正在发生的事情。
在 Java 中,每个实例化的类都只有一个.class
文件。对于具有声明名称的普通类,如下所示:
public class Foo extends Bar {
}
该.class
文件被分配了一个与声明的类名匹配的名称。但是,Java 也允许匿名类。它们采用 anew Foo()
后跟花括号的形式,将其转换为匿名类。这带来了一个问题,因为这个匿名类必须在 VM 级别分配一个名称,尽管在 Java 源代码级别没有。解决方法是使用在 Java 源代码中无效但在 VM 中有效的字符,即$
. 匿名类根据封闭的 Java 类分配一个名称,然后是$
,然后是一个基于匿名类数量的整数索引。在您的情况下,即NewClient
后跟 14 个不同的整数。
要查看您描述的行为,您的字段实际上必须都是您提到的那些类的匿名实现。要减少类的数量,请尝试重用显式类,而不是为每个实例编写自定义行为。