Spec-Zone.ru › OpenJDK 17

Класс 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 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)
Устанавливает генератор идентификаторов имён для фрагментов кода (Snippet).
JShell.Builder in(InputStream in)
Устанавливает входной поток для текущего выполнения (он является System.in).
JShell.Builder out(PrintStream out)
Устанавливает выходной поток для текущего выполнения (он является System.out).
JShell.Builder remoteVMOptions(String... options)
Устанавливает дополнительные параметры виртуальной машины для запуска JVM.
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. Идентификационное имя (id) доступно с помощью Snippet.id() и отображается в StackTraceElement.getFileName() для EvalException и UnresolvedReferenceException.

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

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

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

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

remoteVMOptions

public JShell.Builder remoteVMOptions(String... options)
Устанавливает дополнительные параметры VM для запуска виртуальной машины.
Параметры:
options - параметры для удалённой виртуальной машины
Возвращает:
экземпляр 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, 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.jshell/jdk/jshell/JShell.Builder.html

Spec-Zone.ru

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