Интерфейс SymbolLookup
- Функциональный интерфейс:
- Это функциональный интерфейс и, следовательно, может быть использован в качестве целевого назначения для лямбда-выражения или ссылки на метод.
@FunctionalInterface public interface SymbolLookup
lookup(String). Поиск символа может быть использован для поиска символа в загруженной библиотеке. Клиенты могут получить поиск загрузчика, который может быть использован для поиска символов в библиотеках, загруженных текущим загрузчиком классов (например, с помощью System.load(String) или System.loadLibrary(String)). В качестве альтернативы клиенты могут получить платформозависимый поиск, чтобы искать символы в стандартной библиотеке C. Если не указано иное, передача null аргумента или массива аргументов, содержащего один или несколько null элементов методу в этом классе вызывает NullPointerException.
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static SymbolLookup |
loaderLookup() |
Получает поиск символов, подходящий для поиска символов в нативных библиотеках, связанных с загрузчиком класса вызывающей стороны (то есть библиотеки, загруженные с помощью System.loadLibrary(java.lang.String) или System.load(java.lang.String)). |
Optional<MemoryAddress> |
lookup |
Ищет символ с заданным именем в этом поиске. |
Подробное описание методов
lookup
Optional<MemoryAddress> lookup(String name)
- Параметры:
-
name- имя символа. - Возвращает:
- адрес памяти, связанный со символом (если таковой имеется).
loaderLookup
static SymbolLookup loaderLookup()
System.loadLibrary(java.lang.String) или System.load(java.lang.String)). Этот метод является ограниченным. Ограниченные методы небезопасны, и, если они используются неправильно, их использование может привести к зависанию JVM или, что еще хуже, к неявной порче памяти. Таким образом, клиенты должны воздерживаться от зависимости от ограниченных методов и использовать безопасные и поддерживаемые функции, где это возможно.
- Возвращает:
- поиск символов, подходящий для поиска символов в библиотеках, загруженных загрузчиком класса вызывающей стороны.
- Исключения:
-
IllegalCallerException- если доступ к этому методу происходит из модуляMи опция командной строки--enable-native-accessлибо отсутствует, либо не упоминает имя модуляM, илиALL-UNNAMEDв случае, еслиMявляется безымянным модулем.
© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/jdk.incubator.foreign/jdk/incubator/foreign/SymbolLookup.html