Spec-Zone.ru › OpenJDK 24

Класс SimpleJavaFileObject

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

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

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

JavaFileObject.Kind

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

Модификатор и тип Поле Описание
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, идентифицирующий этот объект файла.

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

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

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

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
Возвращает:
Читатель, обернутый вокруг результата 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.

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

     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!");
     }
Parameters:
uri - который должен использоваться для результирующего JavaFileObject
content - содержимое JavaFileObject
Returns:
a JavaFileObject, представляющий заданный исходный контент.
Since:
23

Отправить сообщение об ошибке или предложить улучшение
Для получения дополнительной информации по API и документации для разработчиков см. Java SE Documentation, в котором содержатся более подробные, ориентированные на разработчика описания с концептуальными обзорами, определениями терминов, обходными путями и примерами рабочего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её дочерних компаний в США и других странах.
Copyright © 1993, 2025, Oracle и/или её дочерние компании, 500 Oracle Parkway, Redwood Shores, CA 94065 США.
Все права защищены. Использование регулируется лицензионными условиями и политикой перераспределения документации.
DRAFT 24-ea+36-Debian-1

© 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.
https://download.java.net/java/early_access/jdk24/docs/api/java.compiler/javax/tools/SimpleJavaFileObject.html

Spec-Zone.ru

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