我已经为BlackBerry开发了一个订单处理应用程序。当我查看bin文件夹时,我看到了100多个.class
文件。
我已经创建了一个用于添加新客户端的主屏幕类。屏幕有7个LabelField对象和7个对应的TextField对象。此屏幕还会创建一个VerticalFieldManager并将所有这些字段添加到其中,然后将该VerticalFieldManager添加到屏幕上。
对于这个屏幕,我在bin文件夹中有14个.class
文件。似乎程序中的每个字段都有一个类文件。例如:
NewClient.class
NewClient$1.class
...
NewClient$14.class
如何设计UI以减少编译类的数量?
发布于 2012-09-01 14:14:54
右键单击myComputer图标,在环境变量path上设置jdk bin文件夹路径
然后重新启动pc
另一种方法是不要在代码上使用覆盖方法,比如
btmSave.setChangeListner(new FieldChangeListner()
{
private void fieldChange()
{
}
}
);
避免编写这种类型的代码-在项目bin文件夹中创建您的类编号文件
发布于 2012-08-22 07:45:00
为BlackBerry构建一个Java-ME应用程序是一个两步过程。首先将java源代码编译为类文件,然后将这些类文件再次编译为.cod文件,该文件可以部署到模拟器或设备上。
‘'rapc’是一种RIM编译器,它将java程序转换为cod或alx文件进行部署。‘'rapc’可以接受java源代码,也可以接受编译后的java类。无论哪种方式,它都可以产生适合设备的输出。
当开始使用Java源文件时,您可以显式地将它们编译成类文件,并将这些类文件交给rapc
,或者您可以将Java源代码传递给rapc,它将直接编译源代码。当提供java源代码时,rapc
只需遵循JDK javac编译器。这意味着标准的java JDK编译器总是被用作编译BlackBerry应用程序的第一步,我们可以查看标准的java行为来理解发生了什么。
在Java语言中,每个实例化的类都只有一个.class
文件。对于具有声明名称的普通类,如下所示:
public class Foo extends Bar {
}
系统会为.class
文件指定一个与声明的类名相匹配的名称。然而,Java也允许匿名类。它们采用new Foo()
的形式,后面跟着一个大括号,这将把它变成一个匿名类。这就带来了一个问题,因为这个匿名类必须在VM级别分配一个名称,尽管在Java源代码级别没有名称。解决方案是使用一个在Java源中无效,但在VM中有效的字符,即$
。匿名类根据包含的Java类被分配一个名称,然后是$
,然后是一个基于匿名类前面的匿名类数量的整数索引。在本例中,这是NewClient
,后跟14个不同的整数。
要查看您所描述的行为,您的字段必须实际上都是您提到的那些类的匿名实现。要减少类的数量,请尝试重用显式类,而不是在每次实例化时编写自定义行为。
https://stackoverflow.com/questions/12055995
复制