BlackBerry用のJava-MEアプリの構築は、2段階のプロセスです。最初にJavaソースコードがクラスファイルにコンパイルされ、次にそれらのクラスファイルが再び.codファイルにコンパイルされ、シミュレータまたはデバイスにデプロイできます。
'rapc'は、Javaプログラムを取得し、それらを展開用のcodまたはalxファイルに変換するRIMコンパイラーです。'rapc'は、Javaソースコードまたはコンパイル済みJavaクラスのいずれかを取ることができます。いずれにせよ、デバイスに適した出力を生成できます。
Javaソースファイルから始める場合は、それらを明示的にクラスファイルにコンパイルしてそれらのクラスファイルをrapc
渡すか、Javaソースをrapcに渡すと、ソースが直接コンパイルされます。 rapc
Javaソースコードが提示された場合は、JDKjavacコンパイラに依存します。つまり、BlackBerryアプリをコンパイルする最初のステップとして常に標準のJava JDKコンパイラーが使用され、標準のJavaの動作を調べて何が起こっているのかを理解できます。
Javaでは、インスタンス化されるすべてのクラスに1つの.class
ファイルがあります。次のように、宣言された名前を持つ通常のクラスの場合:
public class Foo extends Bar {
}
ファイルには、.class
宣言されたクラス名と一致する名前が割り当てられます。ただし、Javaでは匿名クラスも許可されています。これらは、new Foo()
これを匿名のクラスに変える中括弧が後に続く形を取ります。この匿名クラスには、Javaソースレベルには名前がないにもかかわらず、VMレベルで名前を割り当てる必要があるため、これには問題があります。解決策は、Javaソースでは無効であるが、VMでは有効な文字を使用することです$
。匿名クラスには、囲んでいるJavaクラスに基づいた名前が割り当てられ$
、その後に、このクラスの前にある匿名クラスの数に基づいた整数インデックスが続きます。あなたの場合、つまりNewClient
、その後に14個の異なる整数が続きます。
説明する動作を確認するには、フィールドはすべて、実際には、言及するクラスの匿名の実装である必要があります。クラスの数を減らすには、インスタンス化ごとにカスタム動作を記述するのではなく、明示的なクラスを再利用してみてください。