モジュール jdk.incubator.foreign
パッケージ jdk.incubator.foreign

インタフェースNativeSymbol

すべてのスーパー・インタフェース:
Addressable

public sealed interface NativeSymbol extends Addressable
ネイティブ・シンボルは、ネイティブ・ライブラリ内のロケーション (通常、関数のエントリ・ポイント)への参照をモデル化します。 ネイティブ・シンボルには名前があり、ネイティブ・シンボル・ライフ・サイクルを制御するスコープに関連付けられます。 これは、ネイティブ・シンボルが参照するライブラリが「アンロード」になる可能性があるため、ネイティブ・シンボルが無効化されます。 ネイティブ・シンボルは通常symbol lookupを使用して取得されますが、「匿名」ネイティブ・シンボルを「アップ・コール・スタブ」の形式で取得することもできます。つまり、動的に生成されたネイティブ・シンボルへの参照で、Javaコードへの呼び出しに使用できます。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    このシンボルに関連付けられたメモリー・アドレスを返します。
    この記号の名前を返します。
    ofAddress(String name, MemoryAddress address, ResourceScope scope)
    指定された名前、アドレス、およびスコープから新しいシンボルを作成します。
    このシンボルに関連付けられたリソース・スコープを返します。
  • メソッドの詳細

    • name

      String name()
      この記号の名前を返します。
      戻り値:
      この記号の名前
    • scope

      ResourceScope scope()
      このシンボルに関連付けられたリソース・スコープを返します。
      戻り値:
      このシンボルに関連付けられたリソース・スコープ
    • address

      MemoryAddress address()
      このシンボルに関連付けられたメモリー・アドレスを返します。
      定義:
      インタフェースAddressable内のaddress
      戻り値:
      このシンボルに関連付けられたメモリー・アドレス
      例外:
      IllegalStateException - このシンボルに関連付けられたスコープが閉じられている場合、またはそのスコープを所有するスレッド以外のスレッドからアクセスが発生した場合。
    • ofAddress

      static NativeSymbol ofAddress(String name, MemoryAddress address, ResourceScope scope)
      指定された名前、アドレス、およびスコープから新しいシンボルを作成します。

      このメソッドは制限付きです。 制限されたメソッドは安全ではなく、誤って使用するとJVMがクラッシュしたり、悪化したりするとメモリーが破損する可能性があります。 したがって、クライアントは制限付きメソッドに応じて屈折し、可能な場合は安全でサポートされている機能を使用する必要があります。

      パラメータ:
      name - シンボル名。
      address - シンボル・アドレス。
      scope - シンボル・スコープ。
      戻り値:
      指定された名前、アドレス、およびスコープからの新しいシンボル。
      例外:
      IllegalCallerException - このメソッドへのアクセスがモジュールMから発生し、コマンドライン・オプション--enable-native-accessがない場合、またはモジュール名Mが名前なしモジュールの場合はALL-UNNAMEDは説明しません。