Java メソッドの動的な呼び出し

動的呼び出しを使用すると、テスト対象アプリケーション内のコントロールの実際のインスタンスに関して、メソッドの呼び出し、プロパティーの取得、またはプロパティーの設定を直接実行できます。また、このコントロールの Silk4NET API で使用できないメソッドおよびプロパティーも呼び出すことができます。動的呼び出しは、作業しているカスタム コントロールを操作するために必要な機能が、Silk4NET API を通して公開されていない場合に特に便利です。

オブジェクトの動的メソッドは Invoke メソッドを使用して呼び出します。コントロールでサポートされている動的メソッドのリストを取得するには、GetDynamicMethodList メソッドを使用します。

オブジェクトの複数の動的メソッドは InvokeMethods メソッドを使用して呼び出します。コントロールでサポートされている動的メソッドのリストを取得するには、GetDynamicMethodList メソッドを使用します。

動的プロパティの取得には GetProperty メソッドを、動的プロパティの設定には SetProperty メソッドを使用します。コントロールでサポートされている動的プロパティのリストを取得するには、GetPropertyList メソッドを使用します。

たとえば、テスト対象アプリケーション内のコントロールの実際のインスタンスに関して、タイトルを String 型の入力パラメータとして設定する必要がある SetTitle というメソッドを呼び出すには、次のように入力します:
control.Invoke("SetTitle", "my new title")
注: 通常、ほとんどのプロパティは読み取り専用で、設定できません。
注: ほとんどのテクノロジー ドメインでは、メソッドを呼び出してプロパティーを取得する場合、Reflection を使用します。

サポートされているメソッドおよびプロパティ

次のメソッドとプロパティを呼び出すことができます。
  • Silk4NET がサポートするコントロールのメソッドとプロパティー。
  • SWT、AWT、または Swing ウィジェットのすべてのパブリック メソッド
  • コントロールが標準コントロールから派生したカスタム コントロールの場合、標準コントロールが呼び出すことのできるすべてのメソッドとプロパティー。

サポートされているパラメータ型

次のパラメータ型がサポートされます。
  • プリミティブ型 (boolean、integer、long、double、string)

    プリミティブ型 (int など) とオブジェクト タイプ (java.lang.Integer など) の両方がサポートされます。プリミティブ型は必要に応じて拡大変換されます。たとえば、long が必要な場所で int を渡すことができます。

  • 列挙型

    列挙パラメータは文字列として渡す必要があります。文字列は、列挙値の名前と一致しなければなりません。たとえば、メソッドが列挙型 java.sql.ClientInfoStatus のパラメータを必要とする場合、次の文字列値を使用できます: REASON_UNKNOWNREASON_UNKNOWN_PROPERTYREASON_VALUE_INVALIDREASON_VALUE_TRUNCATED

  • リスト

    リスト、配列、または可変長引数のパラメータを持つメソッドを呼び出すことができます。リストの要素がターゲットの配列型に代入可能の場合、配列型への変換は自動的に行われます。

  • その他のコントロール

    コントロール パラメーターは、TestObject として渡したり、返したりできます。

戻り値

プロパティや戻り値を持つメソッドの場合は、次の値が返されます。
  • すべての組み込み Silk4NET 型の場合は正しい値。これらの型は、「サポートされているパラメータ型」のセクションに記載されています。
  • 戻り値を持たないすべてのメソッドの場合、C# では null が、VB では Nothing が返されます。