五、动态函数、类管理器

4. 动态函数、类管理器

类: org.voovan.tools.compiler.DynamicCompilerManager

3.1 动态函数管理方法说明

3.1.1 增加一个动态函数

  1. public static DynamicFunction addFunction(File file, String charSet)
  2. public static DynamicFunction addFunction(File file)
  3. public static DynamicFunction addFunction(String name, String code)
  4. public static DynamicFunction addFunction(DynamicFunction dynamicFunction)
  • file: 文件对象
  • charSet: 字符集。
  • name: 动态函数名称。
  • code: 动态函数代码。
  • dynamicFunction: 动态函数对象。

3.1.2 获取/移除动态函数

  1. public static DynamicFunction getFunctions(String name)
  2. public static void removeFunctions(String name)
  3. public static Map<String, DynamicFunction> getFunctions()
  • 默认使用文件名作为命名
  • name: 动态函数名称。
  • 返回值: 动态函数对象。

3.1.3 调用动态函数

  1. public static Object callFunction(String name, Object ... args)
  • 设置/获取动态函数编译的类的包名,默认:org.voovan.tools.compiler.temporary
  • name: 动态函数名称。
  • args: 动态函数调用的参数。
  • 返回值: 函数返回值。

3.2 动态类管理方法说明

3.2.1 增加一个类

  1. public static DynamicClass addClazz(File file, String charSet)
  2. public static DynamicClass addClazz(File file)
  3. public static DynamicClass addClazz(String name, String code)
  4. public static DynamicClass addClazz(DynamicClass dynamicClass)
  • file: 文件对象
  • charSet: 字符集。
  • name: 动态函数名称。
  • code: 动态函数代码。
  • dynamicFunction: 动态函数对象。

3.1.2 获取/移除动态类

  1. public static DynamicClass getClazz(String name)
  2. public static void removeClazz(String name)
  3. public static Map<String, DynamicClass> getClazzs()
  • 默认使用文件名作为命名
  • name: 动态类名称。
  • 返回值: 动态类对象。

3.1.3 创建一个动态类的实例

  1. public static <T> T newInstance(String name, Object ... args)
  • name: 动态类名称。
  • args: 动态类构造方法的参数。
  • 返回值: 动态类的实例化对象。