Spec-Zone.ru › OpenJDK 21

Класс JShell.Builder

java.lang.Object
jdk.jshell.JShell.Builder
Вложенный класс:
JShell
public static class JShell.Builder extends Object
Создатель экземпляров JShell. Создайте пользовательские экземпляры JShell, используя методы-сеттеры в этом классе. После нуля или более таких операций, используйте метод build() для создания экземпляра JShell. Все эти операции можно объединить. Например, для установки удалённых потоков вывода и ошибок:
 
     JShell myShell =
       JShell.builder()
         .out(myOutStream)
         .err(myErrStream)
         .build();  
Если особые настройки не требуются, просто используйте JShell.builder().build() или сокращённый эквивалент JShell.create().

Краткое описание методов

Модификатор и тип Метод Описание
JShell build()
Создаёт движок состояния JShell.
JShell.Builder compilerOptions(String... options)
Добавляет параметры компилятора.
JShell.Builder console(JShellConsole console)
Устанавливает консоль для текущего вычисления.
JShell.Builder err(PrintStream err)
Устанавливает вывод ошибок для текущего вычисления (это System.err).
JShell.Builder executionEngine(String executionControlSpec)
Устанавливает пользовательский движок для выполнения.
JShell.Builder executionEngine(ExecutionControlProvider executionControlProvider, Map<String,String> executionControlParameters)
Устанавливает пользовательский движок для выполнения.
JShell.Builder fileManager(Function<StandardJavaFileManager,StandardJavaFileManager> mapping)
Настраивает FileManager, который будет использоваться для компиляции и анализа исходного кода.
JShell.Builder idGenerator(BiFunction<Snippet,Integer,String> generator)
Устанавливает генератор идентификаторов имён для фрагментов кода.
JShell.Builder in(InputStream in)
Устанавливает входной поток для текущего вычисления (это System.in).
JShell.Builder out(PrintStream out)
Устанавливает выходной поток для текущего вычисления (это System.out).
JShell.Builder remoteVMOptions(String... options)
Устанавливает дополнительные параметры виртуальной машины для запуска.
JShell.Builder tempVariableNameGenerator(Supplier<String> generator)
Устанавливает генератор имён временных переменных для VarSnippet вида Snippet.SubKind.TEMP_VAR_EXPRESSION_SUBKIND.

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание методов

in

public JShell.Builder in(InputStream in)
Устанавливает входной поток для выполняемого вычисления (это System.in). Примечание: приложения, использующие System.in для фрагмента или другого пользовательского ввода, не могут использовать System.in в качестве потока ввода для удалённого процесса.

Метод read класса InputStream может бросить исключение InterruptedIOException для сигнализации о том, что пользователь отменил ввод. Текущий выполняемый фрагмент будет автоматически stopped.

По умолчанию, если это не установлено, используется пустой входной поток — new ByteArrayInputStream(new byte[0]).

Параметры:
in - поток InputStream, который будет перенаправлен в System.in в удалённом процессе выполнения
Возвращает:
экземпляр Builder (для использования в цепочке инициализации)

out

public JShell.Builder out(PrintStream out)
Устанавливает выходной поток для выполняемого вычисления (это System.out). Управляющий процесс и удалённый процесс могут совместно использовать System.out.

По умолчанию, если это не установлено, используется System.out.

Параметры:
out - поток PrintStream, который будет перенаправлен в System.out в удалённом процессе выполнения
Возвращает:
экземпляр Builder (для использования в цепочке инициализации)

err

public JShell.Builder err(PrintStream err)
Устанавливает поток ошибок для выполняемого вычисления (это System.err). Управляющий процесс и удалённый процесс могут совместно использовать System.err.

По умолчанию, если это не установлено, используется System.err.

Параметры:
err - поток PrintStream, который будет перенаправлен в System.err в удалённом процессе выполнения
Возвращает:
экземпляр Builder (для использования в цепочке инициализации)

console

public JShell.Builder console(JShellConsole console)
Устанавливает консоль для выполняемого вычисления.

По умолчанию, если это не установлено, консоль отсутствует (System.console() вернёт null при выполнении фрагмента).

Параметры:
console - консоль для использования во время выполнения фрагмента
Возвращает:
экземпляр Builder (для использования в цепочке инициализации)
С:
21

tempVariableNameGenerator

public JShell.Builder tempVariableNameGenerator(Supplier<String> generator)
Устанавливает генератор имён временных переменных для VarSnippet вида Snippet.SubKind.TEMP_VAR_EXPRESSION_SUBKIND.

Не используйте этот метод, если у вас нет явной необходимости.

Генератор будет использоваться для вновь созданных экземпляров VarSnippet. Имя переменной запрашивается с помощью PersistentSnippet.name().

Обратный вызов передаётся во время обработки фрагмента, состояние JShell не стабильно. Никакие вызовы к экземпляру JShell не должны производиться из обратного вызова.

Сгенерированное имя должно быть уникальным среди активных фрагментов.

По умолчанию (если этот метод не установлен или generator равно null) имя генерируется как последовательный номер с префиксом "$".

Параметры:
generator - функция для генерации строки имени временной переменной или null
Возвращает:
экземпляр Builder (для использования в цепочке инициализации)

idGenerator

public JShell.Builder idGenerator(BiFunction<Snippet,Integer,String> generator)
Устанавливает генератор идентификаторов для фрагментов.

Не используйте этот метод, если у вас нет явной необходимости.

Генератор будет использоваться для вновь созданных экземпляров Snippet. Идентификатор (id) доступен с помощью Snippet.id() и может быть виден в StackTraceElement.getFileName() для EvalException и UnresolvedReferenceException.

Входными данными для генератора являются Snippet и целое число. Целое число будет одинаковым для двух фрагментов, которые перезаписывают друг друга, но в остальном уникально.

Обратный вызов отправляется во время обработки фрагмента, и фрагмент, и состояние в целом не стабильны. Не следует выполнять вызовы для изменения состояния системы (включая состояние фрагмента). Допускаются запросы к фрагменту, за исключением Snippet.id(). Никаких вызовов к экземпляру JShell не должно производиться из обратного вызова, за исключением status(Snippet).

По умолчанию (если этот метод не установлен или generator равно null) id генерируется как строковое представление целого числа.

Параметры:
generator - функция для генерации строки id или null
Возвращает:
экземпляр Builder (для использования в цепочке инициализации)

remoteVMOptions

public JShell.Builder remoteVMOptions(String... options)
Устанавливает дополнительные параметры JVM для запуска JVM.
Параметры:
options - Параметры удалённой JVM
Возвращает:
экземпляр Builder (для использования в цепочке инициализации)

compilerOptions

public JShell.Builder compilerOptions(String... options)
Добавляет параметры компилятора. Эти дополнительные параметры будут использоваться при вызовах компилятора для разбора, анализа и генерации кода. Параметры, влияющие на результаты, не поддерживаются и имеют неопределённое влияние на работу JShell.
Параметры:
options - дополнительные параметры для вызовов компилятора
Возвращает:
экземпляр Builder (для использования в цепочке инициализации)

executionEngine

public JShell.Builder executionEngine(String executionControlSpec)
Устанавливает пользовательский движок для выполнения. Выполнение фрагментов будет обеспечиваться экземпляром ExecutionControl, выбранным по указанному спецификации управления выполнением. Используйте не более одного из этих перегруженных методов построения executionEngine.
Параметры:
executionControlSpec - спецификация управления выполнением, которая документирована в пакете jdk.jshell.spi.
Возвращает:
экземпляр Builder (для использования в цепочке инициализации)

executionEngine

public JShell.Builder executionEngine(ExecutionControlProvider executionControlProvider, Map<String,String> executionControlParameters)
Устанавливает пользовательский движок для выполнения. Выполнение фрагментов будет обеспечиваться указанным экземпляром ExecutionControl. Используйте не более одного из этих перегруженных методов построения executionEngine.
Параметры:
executionControlProvider - поставщик для предоставления движка выполнения
executionControlParameters - параметры для поставщика, или null для параметров по умолчанию
Возвращает:
экземпляр Builder (для использования в цепочке инициализации)

fileManager

public JShell.Builder fileManager(Function<StandardJavaFileManager,StandardJavaFileManager> mapping)
Настраивает FileManager для использования компиляцией и анализом исходного кода. Если не установлено или передано null, используется стандартный менеджер файлов компилятора (отображение по идентификатору). Для использования в специальных приложениях, где необходимо переопределить стандартное обращение с файлами компилятора. Смотрите API менеджера файлов для получения дополнительной информации. Входной менеджер файлов позволяет передавать менеджеры файлов, если это не нужно, входной менеджер файлов можно проигнорировать (постоянная функция).
Параметры:
mapping - функция, которая, получив стандартный менеджер файлов компилятора, возвращает менеджер файлов для использования
Возвращает:
экземпляр Builder (для использования в цепочке инициализации)

build

public JShell build() throws IllegalStateException
Строит движок состояния JShell. Это точка входа во все функции JShell. Создаёт удалённый процесс для выполнения. Поэтому важно закрыть возвращённый экземпляр.
Возвращает:
движок состояния
Бросает:
IllegalStateException - если экземпляр JShell не смог быть создан.

© 1993, 2023, 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/21/docs/api/jdk.jshell/jdk/jshell/JShell.Builder.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API