M - 由该对象转发的文件管理器的种类
public class ForwardingJavaFileManager<M extends JavaFileManager> extends Object implements JavaFileManager
JavaFileManager.Location| Modifier and Type | Field and Description |
|---|---|
protected M |
fileManager
所有方法的委托文件管理器。
|
| Modifier | Constructor and Description |
|---|---|
protected |
ForwardingJavaFileManager(M fileManager)
创建一个新的ForwardingJavaFileManager实例。
|
protected final M extends JavaFileManager fileManager
protected ForwardingJavaFileManager(M fileManager)
fileManager - 委托给这个文件管理器
public ClassLoader getClassLoader(JavaFileManager.Location location)
JavaFileManager复制
ANNOTATION_PROCESSOR_PATH位置请求类加载器。
getClassLoader在接口
JavaFileManager
location - 一个位置
null如果从给定位置加载插件被禁用或位置不知道
SecurityException - 如果无法在当前安全上下文中创建类加载器
IllegalStateException - 如果已经调用了
JavaFileManager.close() ,并且该文件管理器无法重新打开
public Iterable<JavaFileObject> list(JavaFileManager.Location location, String packageName, Set<JavaFileObject.Kind> kinds, boolean recurse) throws IOException
JavaFileManager复制
注意:即使给定的位置对于该文件管理器是未知的,它也可能不会返回null 。 而且,未知的位置可能不会引起异常。
list在接口
JavaFileManager
location - 一个位置
packageName - 一个包名
kinds - 返回只有这些类型的对象
recurse - 如果真的包括“子包”
IOException - 如果发生I / O错误,或者如果
调用了JavaFileManager.close() ,并且该文件管理器无法重新打开
IllegalStateException - 如果
JavaFileManager.close()已被调用,并且此文件管理器无法重新打开
public String inferBinaryName(JavaFileManager.Location location, JavaFileObject file)
JavaFileManager
inferBinaryName在接口
JavaFileManager
location - 一个位置
file - 一个文件对象
null在给定位置找不到文件对象
IllegalStateException - 如果
JavaFileManager.close()已被调用,并且此文件管理器无法重新打开
public boolean isSameFile(FileObject a, FileObject b)
JavaFileManager
isSameFile在接口
JavaFileManager
a - 文件对象
b - 一个文件对象
IllegalArgumentException - 如果任一参数是使用另一个文件管理器创建的,并且该文件管理器不支持外部文件对象
public boolean handleOption(String current, Iterator<String> remaining)
JavaFileManager
current是该文件管理器的选项, remaining从remaining使用该选项的任何参数,并返回true,否则返回false。
handleOption在接口
JavaFileManager
current - 当前选项
remaining - 剩余的选项
IllegalArgumentException - 如果此文件管理器的此选项被错误地使用
IllegalStateException - 如果
JavaFileManager.close()已被调用,并且此文件管理器无法重新打开
public boolean hasLocation(JavaFileManager.Location location)
JavaFileManager
hasLocation在接口
JavaFileManager
location - 一个位置
public int isSupportedOption(String option)
OptionChecker
isSupportedOption在接口
OptionChecker
option - 一个选项
public JavaFileObject getJavaFileForInput(JavaFileManager.Location location, String className, JavaFileObject.Kind kind) throws IOException
JavaFileManager
getJavaFileForInput在界面
JavaFileManager
location - 一个位置
className - 一个类的名字
kind - 文件的种类,必须是
SOURCE或
CLASS之一
null
IllegalArgumentException - 如果该文件管理器不知道该位置,并且文件管理器不支持未知位置,或者该类型无效
IllegalStateException - 如果
JavaFileManager.close()已被调用,并且此文件管理器无法重新打开
IOException - 如果发生I / O错误,或者如果
调用了JavaFileManager.close() ,并且该文件管理器无法重新打开
public JavaFileObject getJavaFileForOutput(JavaFileManager.Location location, String className, JavaFileObject.Kind kind, FileObject sibling) throws IOException
JavaFileManager复制
可选地,该文件管理器可以将兄弟姐妹视为提示放置输出的位置。 这个提示的确切语义是未指定的。 例如,JDK编译器javac将将类文件放置在与源文件源相同的目录中,除非提供了一个类文件输出目录。 为了方便这种行为,javac可以在调用此方法时将起始源文件提供为兄弟。
getJavaFileForOutput在界面
JavaFileManager
location - 一个位置
className - 一个类的名字
kind - 文件的种类,必须是
SOURCE或
CLASS之一
sibling - 用作放置提示的文件对象;
可能是null
IllegalArgumentException - 如果此文件管理器不知道同级,或者该文件管理器不知道该位置,并且文件管理器不支持未知位置,或者该类型无效
IllegalStateException -
JavaFileManager.close()已被调用,此文件管理器无法重新打开
IOException - 如果发生I / O错误,或者如果
调用了JavaFileManager.close() ,并且无法重新打开此文件管理器
public FileObject getFileForInput(JavaFileManager.Location location, String packageName, String relativeName) throws IOException
JavaFileManager复制
如果返回的对象表示一个source或class文件,那么它必须是一个JavaFileObject的实例。
非法地,此方法返回的文件对象位于位置,包名称和相对名称的并置中。 例如,要在SOURCE_PATH位置的“com.sun.tools.javac”包中找到属性文件“resources / compiler.properties”,可能会调用此方法:
getFileForInput(SOURCE_PATH, "com.sun.tools.javac", "resources/compiler.properties");
如果调用在Windows上执行,SOURCE_PATH设置为"C:\Documents and Settings\UncleBob\src\share\classes" ,则有效的结果将是表示文件"C:\Documents and Settings\UncleBob\src\share\classes\com\sun\tools\javac\resources\compiler.properties"的文件"C:\Documents and Settings\UncleBob\src\share\classes\com\sun\tools\javac\resources\compiler.properties" 。
getFileForInput在界面
JavaFileManager
location - 一个位置
packageName - 包名称
relativeName - 相对名称
null
IllegalArgumentException - 如果该文件管理器不知道位置,并且文件管理器不支持未知位置,或者如果
relativeName无效
IllegalStateException - 如果已经调用了
JavaFileManager.close() ,并且此文件管理器无法重新打开
IOException - 如果发生I / O错误,或者如果
调用了JavaFileManager.close() ,并且该文件管理器无法重新打开
public FileObject getFileForOutput(JavaFileManager.Location location, String packageName, String relativeName, FileObject sibling) throws IOException
JavaFileManager
可选地,该文件管理器可以将兄弟姐妹视为提示放置输出的位置。 这个提示的确切语义是未指定的。 例如,JDK编译器javac将将类文件放置在与源文件源相同的目录中,除非提供了一个类文件输出目录。 为了方便这种行为,javac可以在调用此方法时将起始源文件提供为兄弟。
如果返回的对象表示一个source或class文件,则它必须是JavaFileObject的一个实例。
非法地,此方法返回的文件对象位于位置,包名称和相对名称的连接中,或者位于兄弟参数旁边。 参见getFileForInput为例。
getFileForOutput在接口
JavaFileManager
location - 一个位置
packageName - 包名称
relativeName - 相对名称
sibling - 用作放置提示的文件对象;
可能是null
IllegalArgumentException - 如果此文件管理器不知道同级,或者该文件管理器不知道该位置,并且文件管理器不支持未知位置,或者如果
relativeName无效
IllegalStateException - 如果已经调用了
JavaFileManager.close() ,并且该文件管理器无法重新打开
IOException - 如果发生I / O错误,或者如果已经调用了
JavaFileManager.close() ,并且该文件管理器无法重新打开
public void flush()
throws IOException
JavaFileManager
flush在接口
Flushable
flush在界面
JavaFileManager
IOException - 如果发生I / O错误
JavaFileManager.close()
public void close()
throws IOException
JavaFileManager复制
close在接口
Closeable
close在界面
AutoCloseable
close在接口
JavaFileManager
IOException - 如果发生I / O错误
JavaFileManager.flush()
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.