A | B | C | D | E | F | G | H | I | J | L | M | N | O | P | R | S | T | U | W |
getClass()関数 ・・・ JavaObjectのJavaClassを返す 対応バージョンクライアントサイドNavigator 3コーディング形式getClass(javaobj)
解説getClass()関数は、JavaObjectオブジェクト(javaobj)を引数に取り、JavaObjectオブジェクトのJavaClassオブジェクトを返します。つまり、指定されたJavaObjectオブジェクトに相当するJavaオブジェクトのJavaクラスを表すJavaClassオブジェクトを返します。使用上のヒントと注意JavaオブジェクトのgetClassメソッドとJavaScriptのgetClass()関数を混同しないように注意してください。同様に、Javaのjava.lang.ClassクラスとJavaScriptのJavaClassオブジェクトを混同しないようにしましょう。次のJava矩形オブジェクトについて考えてみましょう。 var r = new java.awt.Rectangle(); 上記のコードで、rはJavaObjectオブジェクトを保持するJavaScriptの変数です。以下に示すようにJavaScriptのgetClass()関数を呼び出すと、java.awt.Rectangleクラスに相当するJavaClassオブジェクトが返されます。 var c = getClass(r); 以下に示すように、JavaClassオブジェクトとjava.awt.Rectangleクラスを比較してみると、これを検証できます。 if (c == java.awt.Rectangle) ... 一方、JavaのgetClass()メソッドは呼び出し方法も実行結果もまったく違います。 c = r.getClass(); 上記のコードを実行すると、cはjava.lang.Classオブジェクトに相当するJavaObjectオブジェクトになります。このjava.lang.Classオブジェクトは、java.awt.Rectangleクラスに相当するJavaオブジェクトです。java.lang.Classクラスの使用方法については、Javaのマニュアルを参照してください。 これまでの話のまとめとして、次のコードを紹介しておきます。どんなJavaObjectオブジェクトoに対してもこの式を評価した結果は常にtrueになります。 (getClass(o.getClass()) == java.lang.Class) 関連項目java、JavaArray、JavaClass、JavaObject、JavaPackage、Packages、20章 |