Класс 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 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 (для использования в цепочке инициализации)

tempVariableNameGenerator

public JShell.Builder tempVariableNameGenerator(Supplier<String> generator)

Устанавливает генератор имён временных переменных для VarSnippet типа Snippet.SubKind.TEMP_VAR_EXPRESSION_SUBKIND.

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

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

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

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

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

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

idGenerator

public JShell.Builder idGenerator(BiFunction<Snippet,​Integer,​String> generator)

Устанавливает генератор идентификаторов для фрагментов кода (Snippet).

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

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

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

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

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

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

remoteVMOptions

public JShell.Builder remoteVMOptions(String... options)

Устанавливает дополнительные параметры VM для запуска VM.

Параметры:
options - Параметры для удаленной VM
Возвращает:
экземпляр 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, 2020, 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/11/docs/api/jdk.jshell/jdk/jshell/JShell.Builder.html

Spec-Zone .ru
спецификации, руководства, описания, API