Spec-Zone.ru › OpenJDK 27

Класс SimpleJavaFileObject

java.lang.Object
javax.tools.SimpleJavaFileObject
Все реализованные интерфейсы:
FileObject, JavaFileObject
public class SimpleJavaFileObject extends Object implements JavaFileObject
Предоставляет простые реализации большинства методов JavaFileObject. Этот класс предназначен для создания подклассов и использования в качестве основы для реализаций JavaFileObject. Подклассы могут переопределять реализацию и спецификацию любого метода этого класса при условии соблюдения общего контракта JavaFileObject.
Начиная с:
1.6

Краткое описание вложенных классов

Вложенные классы/интерфейсы, объявленные в интерфейсе JavaFileObject

JavaFileObject.Kind
Модификатор и тип Интерфейс Описание
static enum  JavaFileObject.Kind
Виды объектов JavaFileObject.

Краткое описание полей

Модификатор и тип Поле Описание
protected final JavaFileObject.Kind kind
Вид этого файлового объекта.
protected final URI uri
URI этого файлового объекта.

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

SimpleJavaFileObject(URI uri, JavaFileObject.Kind kind)
Модификатор Конструктор Описание
protected
Создает SimpleJavaFileObject указанного вида и с указанным URI.

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

Модификатор и тип Метод Описание
boolean delete()
Удаляет этот файловый объект.
static JavaFileObject forSource(URI uri, String content)
Создает JavaFileObject, представляющий указанное исходное содержимое.
Modifier getAccessLevel()
Предоставляет подсказку об уровне доступа класса, представленного этим файловым объектом.
CharSequence getCharContent(boolean ignoreEncodingErrors)
Возвращает символьное содержимое этого файлового объекта, если оно доступно.
JavaFileObject.Kind getKind()
Возвращает вид этого файлового объекта.
long getLastModified()
Возвращает время последнего изменения этого файлового объекта.
String getName()
Возвращает удобочитаемое имя этого файлового объекта.
NestingKind getNestingKind()
Предоставляет подсказку об уровне вложенности класса, представленного этим файловым объектом.
boolean isNameCompatible(String simpleName, JavaFileObject.Kind kind)
Проверяет, совместим ли этот файловый объект с указанными простым именем и видом.
InputStream openInputStream()
Возвращает InputStream для этого файлового объекта.
OutputStream openOutputStream()
Возвращает OutputStream для этого файлового объекта.
Reader openReader(boolean ignoreEncodingErrors)
Возвращает средство чтения для этого объекта.
Writer openWriter()
Возвращает Writer для этого файлового объекта.
URI toUri()
Возвращает URI, идентифицирующий этот файловый объект.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API планируется удалить в одной из будущих версий.
Финализация объявлена устаревшей и планируется к удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения определенного интервала реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения определенного интервала реального времени.

Подробное описание полей

uri

protected final URI uri
URI этого файлового объекта.

kind

protected final JavaFileObject.Kind kind
Вид этого файлового объекта.

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

SimpleJavaFileObject

protected SimpleJavaFileObject(URI uri, JavaFileObject.Kind kind)
Создает SimpleJavaFileObject указанного вида и с указанным URI.
Параметры:
uri — URI этого файлового объекта
kind — вид этого файлового объекта

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

toUri

public URI toUri()
Описание скопировано из интерфейса: FileObject
Возвращает URI, идентифицирующий этот файловый объект.
Определен в:
toUri в интерфейсе FileObject
Возвращает:
URI

getName

public String getName()
Описание скопировано из интерфейса: FileObject
Возвращает удобочитаемое имя этого файлового объекта. Точное значение не определено, однако реализации должны сохранять имена в том виде, в котором их указал пользователь. Например, если пользователь вводит имя файла "BobsApp\Test.java" в командной строке, этот метод должен возвращать "BobsApp\Test.java", тогда как метод toUri может возвращать file:///C:/Documents%20and%20Settings/UncleBob/BobsApp/Test.java.
Определен в:
getName в интерфейсе FileObject
Возвращает:
удобочитаемое имя

openInputStream

public InputStream openInputStream() throws IOException
Возвращает InputStream для этого файлового объекта.
Определен в:
openInputStream в интерфейсе FileObject
Требования к реализации:
Эта реализация всегда выбрасывает UnsupportedOperationException.
Возвращает:
InputStream
Выбрасывает:
IOException — если произошла ошибка ввода-вывода

openOutputStream

public OutputStream openOutputStream() throws IOException
Возвращает OutputStream для этого файлового объекта.
Определен в:
openOutputStream в интерфейсе FileObject
Требования к реализации:
Эта реализация всегда выбрасывает UnsupportedOperationException.
Возвращает:
OutputStream
Выбрасывает:
IOException — если произошла ошибка ввода-вывода

openReader

public Reader openReader(boolean ignoreEncodingErrors) throws IOException
Возвращает средство чтения для этого объекта. Возвращенное средство чтения заменяет байты, которые невозможно декодировать, символом замены по умолчанию. Кроме того, средство чтения может сообщить о диагностической ошибке, если ignoreEncodingErrors не равно true.
Определен в:
openReader в интерфейсе FileObject
Требования к реализации:
Эта реализация оборачивает результат getCharContent(boolean) в Reader.
Параметры:
ignoreEncodingErrors — игнорировать ошибки кодирования, если значение равно true
Возвращает:
Reader, оборачивающий результат getCharContent
Выбрасывает:
IllegalStateException — если этот файловый объект открыт для записи и не поддерживает чтение
UnsupportedOperationException — если этот вид файлового объекта не поддерживает доступ к символам
IOException — если произошла ошибка ввода-вывода

getCharContent

public CharSequence getCharContent(boolean ignoreEncodingErrors) throws IOException
Возвращает символьное содержимое этого файлового объекта, если оно доступно. Любой байт, который невозможно декодировать, заменяется символом замены по умолчанию. Кроме того, может быть сообщено о диагностической ошибке, если ignoreEncodingErrors не равно true.
Определен в:
getCharContent в интерфейсе FileObject
Требования к реализации:
Эта реализация всегда выбрасывает UnsupportedOperationException.
Параметры:
ignoreEncodingErrors — игнорировать ошибки кодирования, если значение равно true
Возвращает:
CharSequence, если доступно; в противном случае — null
Выбрасывает:
IOException — если произошла ошибка ввода-вывода

openWriter

public Writer openWriter() throws IOException
Возвращает Writer для этого файлового объекта.
Определен в:
openWriter в интерфейсе FileObject
Требования к реализации:
Эта реализация оборачивает результат openOutputStream() в Writer.
Возвращает:
Writer, оборачивающий результат openOutputStream
Выбрасывает:
IllegalStateException — если этот файловый объект открыт для чтения и не поддерживает запись
UnsupportedOperationException — если этот вид файлового объекта не поддерживает доступ к символам
IOException — если произошла ошибка ввода-вывода

getLastModified

public long getLastModified()
Возвращает время последнего изменения этого файлового объекта. Время измеряется в миллисекундах с начала эпохи (00:00:00 GMT, 1 января 1970 года).
Определен в:
getLastModified в интерфейсе FileObject
Требования к реализации:
Эта реализация возвращает 0L.
Возвращает:
0L

delete

public boolean delete()
Удаляет этот файловый объект. В случае ошибки возвращает false.
Определен в:
delete в интерфейсе FileObject
Требования к реализации:
Эта реализация ничего не делает.
Возвращает:
false

getKind

public JavaFileObject.Kind getKind()
Описание скопировано из интерфейса: JavaFileObject
Возвращает вид этого файлового объекта.
Определен в:
getKind в интерфейсе JavaFileObject
Возвращает:
this.kind

isNameCompatible

public boolean isNameCompatible(String simpleName, JavaFileObject.Kind kind)
Проверяет, совместим ли этот файловый объект с указанными простым именем и видом. Простое имя — это одиночный идентификатор (не квалифицированный), определенный в Спецификации языка Java, раздел §6.2.
Определен в:
isNameCompatible в интерфейсе JavaFileObject
Требования к реализации:
Эта реализация сравнивает путь URI объекта с указанным простым именем. Метод возвращает true, если указанный вид совпадает с видом этого объекта, а путь равен simpleName + kind.extension или заканчивается на "/" + simpleName + kind.extension.

Этот метод вызывает getKind() и toUri() и не обращается напрямую к полям uri и kind.

Параметры:
simpleName — простое имя класса
kind — вид
Возвращает:
true, если этот файловый объект совместим; в противном случае — false

getNestingKind

public NestingKind getNestingKind()
Предоставляет подсказку об уровне вложенности класса, представленного этим файловым объектом. Метод может возвращать NestingKind.MEMBER, обозначая NestingKind.LOCAL или NestingKind.ANONYMOUS. Если уровень вложенности неизвестен или этот файловый объект не представляет файл класса, метод возвращает null.
Определен в:
getNestingKind в интерфейсе JavaFileObject
Требования к реализации:
Эта реализация возвращает null.
Возвращает:
вид вложенности или null, если вид вложенности неизвестен

getAccessLevel

public Modifier getAccessLevel()
Предоставляет подсказку об уровне доступа класса, представленного этим файловым объектом. Если уровень доступа неизвестен или этот файловый объект не представляет файл класса, метод возвращает null.
Определен в:
getAccessLevel в интерфейсе JavaFileObject
Требования к реализации:
Эта реализация возвращает null.
Возвращает:
уровень доступа

forSource

public static JavaFileObject forSource(URI uri, String content)
Создает JavaFileObject, представляющий указанное исходное содержимое.

Указанный uri будет возвращаться методом toUri(). Указанное content будет возвращаться методом getCharContent(boolean). Метод getKind() будет возвращать JavaFileObject.Kind.SOURCE.

Все остальные методы будут работать так, как описано в документации этого класса, как если бы конструктор был вызван с uri и Kind.SOURCE.

Этот метод можно использовать, например, для компиляции строки, хранящейся в памяти, в набор файлов классов в целевом каталоге:

     var code = """
                public class CompiledCode {}
                """;
     var compiler = ToolProvider.getSystemJavaCompiler();
     var targetDirectory = "...";
     var task = compiler.getTask(null,
                                 null,
                                 null,
                                 List.of("-d", targetDirectory),
                                 null,
                                 List.of(SimpleJavaFileObject.forSource(URI.create("CompiledCode.java"), code)));
     if (!task.call()) {
         throw new IllegalStateException("Compilation failed!");
     }
Параметры:
uri — URI, который следует использовать для полученного JavaFileObject
content — содержимое JavaFileObject
Возвращает:
JavaFileObject, представляющий указанное исходное содержимое.
Начиная с:
23

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, способы обхода проблем и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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.

Spec-Zone.ru

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