- java.lang.Object
 -  
      
- javax.tools.ForwardingJavaFileManager<M>
 
 
-  
       
- 参数类型
 -  
         
M- 此对象转发的文件管理器的类型 
- 实现的所有接口
 -  
         
Closeable,Flushable,AutoCloseable,JavaFileManager,OptionChecker 
public class ForwardingJavaFileManager<M extends JavaFileManager> extends Object implements JavaFileManager
转发给给定文件管理器的调用。 此类的子类可能会覆盖其中一些方法,还可能提供其他字段和方法。- 从以下版本开始:
 - 1.6
 
 
-  
        
       
-  
             
嵌套类汇总
-  
               
Nested classes/interfaces declared in interface javax.tools.JavaFileManager
JavaFileManager.Location 
 -  
               
 
-  
             
字段汇总
字段 变量和类型 字段 描述 protected MfileManager所有方法都委托给的文件管理器。 
-  
             
构造方法摘要
构造方法 变量 构造器 描述 protectedForwardingJavaFileManager(M fileManager)创建ForwardingJavaFileManager的新实例。 
-  
             
方法摘要
-  
               
声明方法的类 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 
-  
               
声明方法的接口 javax.tools.JavaFileManager
close, flush, hasLocation 
-  
               
声明方法的接口 javax.tools.OptionChecker
isSupportedOption 
 -  
               
 
 -  
             
 
-  
        
       
-  
             
字段详细信息
-  
fileManager
protected final M extends JavaFileManager fileManager
所有方法都委托给的文件管理器。 
 -  
 
-  
             
构造方法详细信息
-  
ForwardingJavaFileManager
protected ForwardingJavaFileManager(M fileManager)
创建ForwardingJavaFileManager的新实例。- 参数
 -  
              
fileManager- 委托此文件管理器 
 
 -  
 
-  
             
方法详细信息
-  
getClassLoader
public ClassLoader getClassLoader(JavaFileManager.Location location)
从界面复制的说明:JavaFileManager返回一个类加载器,用于从给定的面向程序包的位置加载插件。 例如,要加载注释处理器,编译器将为ANNOTATION_PROCESSOR_PATH位置请求类加载器。- Specified by:
 -  
              
getClassLoaderinJavaFileManager - 参数
 -  
              
location- 一个位置 - 结果
 -  
              给定位置的类加载器; 
              或者如果禁用从给定位置加载插件或者位置
null - 异常
 -  
              
SecurityException- 如果无法在当前安全上下文中创建类加载器 -  
              
IllegalStateException- 如果已调用JavaFileManager.close()且无法重新打开此文件管理器 
 
-  
list
public Iterable<JavaFileObject> list(JavaFileManager.Location location, String packageName, Set<JavaFileObject.Kind> kinds, boolean recurse) throws IOException
从界面复制的说明:JavaFileManager列出在给定的面向包的位置中与给定条件匹配的所有文件对象。 如果recurse为true,则在“subpackages”中列出文件对象。注意:即使此文件管理器未知给定位置,它也可能不会返回
null。 此外,未知位置可能不会导致异常。- Specified by:
 -  
              
list在界面JavaFileManager - 参数
 -  
              
location- 一个位置 -  
              
packageName- 包名称 -  
              
kinds- 仅返回这些类型的对象 -  
              
recurse- 如果为true则包含“子包” - 结果
 - 与给定条件匹配的Iterable文件对象
 - 异常
 -  
              
IOException- 如果发生I / O错误,或者已调用JavaFileManager.close()且无法重新打开此文件管理器 -  
              
IllegalStateException-如果JavaFileManager.close()已经调用了此文件管理器无法重新打开 
 
-  
inferBinaryName
public String inferBinaryName(JavaFileManager.Location location, JavaFileObject file)
从界面复制的说明:JavaFileManager基于面向包的位置推断文件对象的二进制名称。 根据The Java™ Language Specification,返回的二进制名称可能不是有效的二进制名称。- Specified by:
 -  
              
inferBinaryName在界面JavaFileManager - 参数
 -  
              
location- 一个位置 -  
              
file- 文件对象 - 结果
 - 
               二进制名称或 
              
null在给定位置找不到文件对象 - 异常
 -  
              
IllegalStateException- 如果已调用JavaFileManager.close()且无法重新打开此文件管理器 
 
-  
isSameFile
public boolean isSameFile(FileObject a, FileObject b)
从界面复制的说明:JavaFileManager比较两个文件对象,如果它们代表相同的底层对象,则返回true。- Specified by:
 -  
              
isSameFile在界面JavaFileManager - 参数
 -  
              
a- 文件对象 -  
              
b- 文件对象 - 结果
 - 如果给定的文件对象表示相同的底层对象,则返回true
 - 异常
 -  
              
IllegalArgumentException- 如果其中一个参数是使用另一个文件管理器创建的,并且此文件管理器不支持外部文件对象 
 
-  
handleOption
public boolean handleOption(String current, Iterator<String> remaining)
从界面复制的说明:JavaFileManager处理一个选项。 如果current是此文件管理器的选项,remaining从remaining使用该选项的任何参数并返回true,否则返回false。- Specified by:
 -  
              
handleOption在界面JavaFileManager - 参数
 -  
              
current- 当前选项 -  
              
remaining- 其余选项 - 结果
 - 如果此选项由此文件管理器处理,则返回true,否则返回false
 - 异常
 -  
              
IllegalArgumentException- 如果错误地使用此文件管理器的此选项 -  
              
IllegalStateException- 如果已调用JavaFileManager.close()且无法重新打开此文件管理器 
 
-  
getJavaFileForInput
public JavaFileObject getJavaFileForInput(JavaFileManager.Location location, String className, JavaFileObject.Kind kind) throws IOException
从界面复制的说明:JavaFileManager返回file object ,表示在给定的面向包的位置中指定类型的指定类的输入。- Specified by:
 -  
              
getJavaFileForInput在界面JavaFileManager - 参数
 -  
              
location- 一个位置 -  
              
className- 类的名称 -  
              
kind- 那种文件,必须是SOURCE或CLASS之一 - 结果
 - 
               如果文件不存在,则文件对象可能返回 
              
null - 异常
 -  
              
IllegalArgumentException- 如果此文件管理器不知道该位置,并且文件管理器不支持未知位置,或者该类型无效,或者该位置是面向模块的位置 -  
              
IllegalStateException- 如果已调用JavaFileManager.close()且无法重新打开此文件管理器 -  
              
IOException- 如果发生I / O错误,或者已调用JavaFileManager.close()且无法重新打开此文件管理器 
 
-  
getJavaFileForOutput
public JavaFileObject getJavaFileForOutput(JavaFileManager.Location location, String className, JavaFileObject.Kind kind, FileObject sibling) throws IOException
从界面复制的说明:JavaFileManager返回file object ,表示在给定的面向包的位置中指定类型的指定类的输出。(可选)此文件管理器可能会将兄弟节点视为输出放置位置的提示。 此提示的确切语义未指定。 例如,JDK编译器javac会将类文件放在与原始源文件相同的目录中,除非提供了类文件输出目录。 为了促进此行为,javac可能会在调用此方法时将原始源文件提供为兄弟。
- Specified by:
 -  
              
getJavaFileForOutput在界面JavaFileManager - 参数
 -  
              
location- 面向包的位置 -  
              
className- 类的名称 -  
              
kind- 那种文件,必须是SOURCE或CLASS之一 -  
              
sibling- 要用作放置提示的文件对象; 可能是null - 结果
 - 输出的文件对象
 - 异常
 -  
              
IllegalArgumentException- 如果此文件管理器不知道兄弟IllegalArgumentException,或者此文件管理器不知道该位置且文件管理器不支持未知位置,或者该类型无效,或者该位置不是输出位置 - 
               已调用 
              
IllegalStateException-JavaFileManager.close(),无法重新打开此文件管理器 -  
              
IOException- 如果发生I / O错误,或者已调用JavaFileManager.close()且无法重新打开此文件管理器 
 
-  
getFileForInput
public FileObject getFileForInput(JavaFileManager.Location location, String packageName, String relativeName) throws IOException
从界面复制的说明:JavaFileManager返回file object ,表示在给定的面向程序包的位置中指定包中指定relative name的输入。如果返回的对象表示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"的文件对象。- Specified by:
 -  
              
getFileForInput,界面JavaFileManager - 参数
 -  
              
location- 面向包的位置 -  
              
packageName- 包名称 -  
              
relativeName- 相对名称 - 结果
 - 
               如果文件不存在,则文件对象可能返回 
              
null - 异常
 -  
              
IllegalArgumentException- 如果此文件管理器不知道该位置且文件管理器不支持未知位置,或者relativeName无效,或者该位置是面向模块的位置 -  
              
IllegalStateException-如果JavaFileManager.close()已经调用了此文件管理器无法重新打开 -  
              
IOException- 如果发生I / O错误,或者已调用JavaFileManager.close()且无法重新打开此文件管理器 
 
-  
getFileForOutput
public FileObject getFileForOutput(JavaFileManager.Location location, String packageName, String relativeName, FileObject sibling) throws IOException
从界面复制的说明:JavaFileManager返回file object用于表示指定的输出relative name在指定的包在给定的位置。(可选)此文件管理器可能会将兄弟节点视为输出放置位置的提示。 此提示的确切语义未指定。 例如,JDK编译器javac会将类文件放在与原始源文件相同的目录中,除非提供了类文件输出目录。 为了促进此行为,javac可能会在调用此方法时将原始源文件提供为兄弟。
如果返回的对象表示source或class文件,则它必须是
JavaFileObject的实例。非正式地,此方法返回的文件对象位于位置,包名称和相对名称的串联中,或位于同级参数旁边。 有关示例 ,请参见
getFileForInput。- Specified by:
 -  
              
getFileForOutput在界面JavaFileManager - 参数
 -  
              
location- 输出位置 -  
              
packageName- 包名称 -  
              
relativeName- 相对名称 -  
              
sibling- 要用作放置提示的文件对象; 可能是null - 结果
 - 一个文件对象
 - 异常
 -  
              
IllegalArgumentException- 如果此文件管理器不知道同级,或者此文件管理器不知道该位置且文件管理器不支持未知位置,或者relativeName无效,或者该位置不是输出位置 -  
              
IllegalStateException- 如果已调用JavaFileManager.close()且无法重新打开此文件管理器 -  
              
IOException- 如果发生I / O错误,或者已调用JavaFileManager.close()且无法重新打开此文件管理器 
 
-  
getLocationForModule
public JavaFileManager.Location getLocationForModule(JavaFileManager.Location location, String moduleName) throws IOException
从界面复制的说明:JavaFileManager获取位置内的命名模块的位置,该位置可以是面向模块的位置或输出位置。 如果给定位置是输出位置,则结果将是输出位置,或者它将是面向包的位置。- Specified by:
 -  
              
getLocationForModule在界面JavaFileManager - 参数
 -  
              
location- 面向模块的位置 -  
              
moduleName- 要查找的模块的名称 - 结果
 - 指定模块的位置
 - 异常
 -  
              
IOException- 如果发生I / O错误 - 从以下版本开始:
 - 9
 
 
-  
getLocationForModule
public JavaFileManager.Location getLocationForModule(JavaFileManager.Location location, JavaFileObject fo) throws IOException
从界面复制的说明:JavaFileManager获取包含要在位置中找到的特定文件的模块的位置,该位置可以是面向模块的位置或输出位置。 如果给定位置是输出位置,则结果将是输出位置,或者它将是面向包的位置。- Specified by:
 -  
              
getLocationForModulein interfaceJavaFileManager - 参数
 -  
              
location- 面向模块的位置 -  
              
fo- 该文件 - 结果
 - 包含该文件的模块
 - 异常
 -  
              
IOException- 如果发生I / O错误 - 从以下版本开始:
 - 9
 
 
-  
getServiceLoader
public <S> ServiceLoader<S> getServiceLoader(JavaFileManager.Location location, 类<S> service) throws IOException
从界面复制的说明:JavaFileManager从给定位置获取特定服务类的服务加载程序。 如果位置是面向模块的位置,则服务加载器将使用该位置中找到的模块中的服务声明。 否则,使用面向包的位置创建服务加载程序,在这种情况下,使用META-INF/services的提供程序配置文件确定服务。- Specified by:
 -  
              
getServiceLoader在界面JavaFileManager - 参数类型
 -  
              
S- 服务类 - 参数
 -  
              
location- 面向模块的位置 -  
              
service- 服务类的类对象 - 结果
 - 给定服务类的服务加载器
 - 异常
 -  
              
IOException- 如果发生I / O错误 - 从以下版本开始:
 - 9
 
 
-  
inferModuleName
public String inferModuleName(JavaFileManager.Location location) throws IOException
从界面复制的说明:JavaFileManager从其位置推断模块的名称,由getLocationForModule或listModuleLocations返回。- Specified by:
 -  
              
inferModuleName在界面JavaFileManager - 参数
 -  
              
location- 表示模块的面向包的位置 - 结果
 - 模块的名称
 - 异常
 -  
              
IOException- 如果发生I / O错误 - 从以下版本开始:
 - 9
 
 
-  
listLocationsForModules
public Iterable<Set<JavaFileManager.Location>> listLocationsForModules(JavaFileManager.Location location) throws IOException
从界面复制的说明:JavaFileManager列出面向模块的位置或输出位置中所有模块的位置。 如果给定位置是输出,则返回的位置将是输出位置,或者它将是面向包的位置。- Specified by:
 -  
              
listLocationsForModules在接口JavaFileManager - 参数
 -  
              
location- 面向模块的位置,列出模块 - 结果
 - 一系列包含模块的位置
 - 异常
 -  
              
IOException- 如果发生I / O错误 - 从以下版本开始:
 - 9
 
 
-  
contains
public boolean contains(JavaFileManager.Location location, FileObject fo) throws IOException
从界面复制的说明:JavaFileManager确定给定文件对象是否“包含在”指定位置。对于面向包的位置,如果存在packageName和relativeName的值,则该位置中包含文件对象,以便以下任一调用都将返回
same文件对象:getFileForInput(location, packageName, relativeName) getFileForOutput(location, packageName, relativeName, null)对于面向模块的位置,如果存在可以通过调用获得的模块,则文件对象包含在该位置中:
getLocationForModule(location, moduleName)这样文件对象就包含在该模块的(面向包的)位置中。- Specified by:
 -  
              
contains接口JavaFileManager - 参数
 -  
              
location- 位置 -  
              
fo- 文件对象 - 结果
 - 该文件是否包含在该位置
 - 异常
 -  
              
IOException- 如果确定结果有问题 - 从以下版本开始:
 - 9
 
 
 -  
 
 -