使用参数创建实例

From Apache OpenOffice Wiki
Jump to: navigation, search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.


工厂可以创建组件的实例并传送附加的参数。要完成此操作,客户端可以调用 com.sun.star.lang.XSingleServiceFactory 接口的 createInstanceWithArguments() 函数或 com.sun.star.lang.XSingleComponentFactory 接口的 createInstanceWithArgumentsAndContext()

  //javamaker generated interface
  //XSingleServiceFactory interface 
  public java.lang.Object createInstanceWithArguments(java.lang.Object[] aArguments) 
                              throws com.sun.star.uno.Exception;
  
  //XSingleComponentFactory
  public java.lang.Object createInstanceWithArgumentsAndContext(java.lang.Object[] Arguments,
                              com.sun.star.uno.XComponentContext Context)
                          throws com.sun.star.uno.Exception;


这两个函数都接受值的数组作为参数。组件将实现 com.sun.star.lang.XInitialization 接口以接收这些值。工厂会将数组传送到 XInitialization 支持的单个方法 initialize()

  public void initialize(java.lang.Object[] aArguments) throws com.sun.star.uno.Exception;


或者,组件还可以在其构造函数中接收这些参数。如果编写一个工厂,请明确在该工厂实例化组件时它会提供哪些参数。使用 FactoryHelper 时,请使用以下参数实现构造函数:

第一个参数 第二个参数 第三个参数
com.sun.star.uno.XComponentContext com.sun.star.registry.XRegistryKey java.lang.Object[]
com.sun.star.uno.XComponentContext com.sun.star.registry.XRegistryKey
com.sun.star.uno.XComponentContext java.lang.Object[]
com.sun.star.uno.XComponentContext
java.lang.Object[]


FactoryHelper 会自动将它从 createInstanceWithArguments[AndContext]() 调用接收到的参数数组传送到适当的构造函数。因此,不必总是实现 XInitialization 以使用这些参数。


Content on this page is licensed under the Public Documentation License (PDL).
Personal tools
In other languages