JAVACAST |
説明 Java オブジェクトのオーバーロードされたメソッドに引数として渡す ColdFusion 変数のデータタイプを変換します。スカラおよび文字列の引数のみに使用します。
戻り値 type で指定されたタイプの変数
カテゴリ 文字列関数
関数のシンタックス
    JavaCast(type, variable)
関連項目 CreateObject、cfobject
パラメータ
使用方法 cfobject タグで Java オブジェクトを作成してから、そのメソッドの 1 つを呼び出すまでの間に使用します。メソッドがオーバーロードされた引数を複数取る場合、各引数について JavaCast を呼び出す必要があります。JavaCast は、メソッドがオーバーロードされている場合にのみ使用します。これは、メソッドがさまざまな数の引数を取るためではなく、引数が複数のデータタイプを取るためです。 JavaCast は、複雑なオブジェクト間のキャストや、上位クラスへのキャストには使用できません。 次の例に示すように、Java オブジェクトに対する呼び出しの場合にのみこの関数の結果を使用します。
    <cfscript>
        x = CreateObject("java", "test.Hello");
        x.init();
        ret = x.sayHello(JavaCast("null", ""));
    </cfscript>
警告: | JavaCast("null","") の結果を ColdFusion 変数に割り当てないでください。予期しない結果が生じます。
内部に保管された ColdFusion タイプと Java スカラタイプの間に 1 対 1 の対応関係がないために、実行できない変換もあります。
例 fooClass クラスのメソッド fooMethod は、オーバーロードされた 1 つの引数を取ります。fooClass クラスは次のように定義されています。
    public class fooClass {
       public fooClass () {
       }
       public String fooMethod(String arg) {
          return "引数は文字列です。";
       }
       public String fooMethod(int arg) {
          return "引数は整数です。";
       }
    }
ColdFusion では、次のコードを使用します。
    <cfobject
    action="create"
        type = "java"
        class = "fooClass"
        name = obj>

    <!--- ColdFusion は、これを文字列または実数として処理します。 --->
    <cfset x = 33>

    整数への明示的なキャストを実行してから fooMethod を呼び出す<br>
    <cfset myInt = JavaCast("int", x)>
    <cfoutput>#obj.fooMethod(myInt)#</cfoutput>
    <br><br>
    文字列への明示的なキャストを実行してから fooMethod を呼び出す<br>
    <cfset myString = javaCast("String", x)>
    <cfoutput>#obj.fooMethod(myString)#</cfoutput>

TYPE |
変数が変換されるデータタイプです。 boolean int long float double string null

VARIABLE |
スカラまたは文字列のタイプを保持する ColdFusion 変数です。type が null の場合、"" でなけれ ばなりません。