Package org.aoju.bus.core.compiler
Class JavaSourceFileObject
java.lang.Object
javax.tools.SimpleJavaFileObject
org.aoju.bus.core.compiler.JavaSourceFileObject
- All Implemented Interfaces:
FileObject,JavaFileObject
Java 源码文件对象,支持:
- 源文件,通过文件的uri传入
- 代码内容,通过流传入
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Nested Class Summary
Nested classes/interfaces inherited from interface javax.tools.JavaFileObject
JavaFileObject.Kind -
Field Summary
Fields inherited from class javax.tools.SimpleJavaFileObject
kind, uri -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedJavaSourceFileObject(String name, InputStream inputStream) 构造,支持流中读取源码(例如zip或网络等)protectedJavaSourceFileObject(String className, String code, Charset charset) 构造,支持String类型的源码protectedJavaSourceFileObject(URI uri) 构造,支持File等路径类型的源码 -
Method Summary
Modifier and TypeMethodDescriptiongetCharContent(boolean ignoreEncodingErrors) 获得类源码 编译器编辑源码前,会通过此方法获取类的源码获得类源码的输入流Methods inherited from class javax.tools.SimpleJavaFileObject
delete, getAccessLevel, getKind, getLastModified, getName, getNestingKind, isNameCompatible, openOutputStream, openReader, openWriter, toString, toUri
-
Constructor Details
-
JavaSourceFileObject
构造,支持File等路径类型的源码- Parameters:
uri- 需要编译的文件uri
-
JavaSourceFileObject
构造,支持String类型的源码- Parameters:
className- 需要编译的类名code- 需要编译的类源码charset- 编码
-
JavaSourceFileObject
构造,支持流中读取源码(例如zip或网络等)- Parameters:
name- 需要编译的文件名inputStream- 输入流
-
-
Method Details
-
openInputStream
获得类源码的输入流- Specified by:
openInputStreamin interfaceFileObject- Overrides:
openInputStreamin classSimpleJavaFileObject- Returns:
- 类源码的输入流
- Throws:
IOException- IO 异常
-
getCharContent
获得类源码 编译器编辑源码前,会通过此方法获取类的源码- Specified by:
getCharContentin interfaceFileObject- Overrides:
getCharContentin classSimpleJavaFileObject- Parameters:
ignoreEncodingErrors- 是否忽略编码错误- Returns:
- 需要编译的类的源码
- Throws:
IOException- IO异常
-