- すべてのスーパー・インタフェース:
Addressable
public sealed interface NativeSymbol extends Addressable
ネイティブ・シンボルは、ネイティブ・ライブラリ内のロケーション (通常、関数のエントリ・ポイント)への参照をモデル化します。 ネイティブ・シンボルには名前があり、ネイティブ・シンボル・ライフ・サイクルを制御するスコープに関連付けられます。 これは、ネイティブ・シンボルが参照するライブラリが「アンロード」になる可能性があるため、ネイティブ・シンボルが無効化されます。 ネイティブ・シンボルは通常
symbol lookup
を使用して取得されますが、「匿名」ネイティブ・シンボルを「アップ・コール・スタブ」の形式で取得することもできます。つまり、動的に生成されたネイティブ・シンボルへの参照で、Javaコードへの呼び出しに使用できます。 -
メソッドのサマリー
修飾子と型メソッド説明address()
このシンボルに関連付けられたメモリー・アドレスを返します。name()
この記号の名前を返します。static NativeSymbol
ofAddress
(String name, MemoryAddress address, ResourceScope scope) 指定された名前、アドレス、およびスコープから新しいシンボルを作成します。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
は説明しません。
-