Fluxon 提供两类可选的 Java 互操作表达式:Documentation Index
Fetch the complete documentation index at: https://fluxon.tabooproject.org/llms.txt
Use this file to discover all available pages before exploring further.
new:构造任意 Java 类的实例。static:访问 Java 类的静态字段或调用静态方法。
启用方式
宿主集成(Java)
new/static 由 CompilationContext#allowJavaConstruction 控制(默认 false):
new/static 的结果上使用成员访问 .(反射),需要同时启用:
CLI / REPL
交互式控制台通常会默认启用new/static 与成员访问 .,因此在 REPL 中使用往往不需要额外配置
(见 命令行与 REPL)。
new:构造对象
语法:
- 类名必须是 全限定名(例如
java.util.ArrayList),不会自动根据import推断。 - 参数是普通表达式;构造函数会按实参类型匹配最合适的重载(不匹配会报错)。
.,也可以直接对新对象做链式成员访问:
static:访问静态成员
语法:
括号语法(消除歧义 + 支持链式)
当你需要在静态字段结果上继续做.member 链式访问时,建议使用括号语法锁定类名:
. 之前的内容当作“类名”,因此
static java.lang.System.out.println(...) 会被解析为类 java.lang.System.out 的静态方法 println(...),从而导致类找不到。
括号语法同样适用于“静态字段 → 实例方法”的组合:
常见错误与边界
- 特性未开启:解析阶段会报错并提示
ctx.setAllowJavaConstruction(true)。 - 类不存在:
Class not found: <className>。 - 成员/构造函数不存在或不匹配:会抛出
MemberNotFoundError或运行时异常(取决于调用点)。 - 安全风险:
new/static允许脚本触达任意可见的 Java API;对不可信脚本请保持禁用。