深入探索 Jess 与 Java 的交互及工作内存管理
1. Jess 调用 Java 重载方法
在 Java 里,调用重载方法时会依据特定规则选择最合适的方法。但 Jess 处理重载方法的方式更为灵活,因为它不像 Java 那样有严格的类型信息。就像 Java 的 println 方法有针对 double 和 float 的不同重载版本,而 Jess 只有一种浮点类型,所以调用时无法确定该选哪个。
Jess 调用重载方法时,会依次检查每个重载版本,尝试将方法的参数类型与传入的参数类型匹配。一旦找到能使用给定参数列表调用的重载版本,就会调用该方法,而不会去寻找最佳匹配。因为 Jess 有多种在 Jess 和 Java 值之间转换的方式,所以“最佳匹配”的概念在这里不太明确。
不过,很多时候调用一组重载方法中的哪一个其实无关紧要,因为它们通常功能相同,重载只是为了方便。但有时你可能想调用特定的重载方法,可情况可能会让这无法实现。比如,将字符串 "TRUE" 传给一个既接受 boolean 又接受 String 的 Java 重载方法时,很难预测 Jess 会选哪个。这时可以使用显式包装类来解决。例如,若想调用 boolean 重载版本,但 Jess 调用了 String 版本,创建并传入一个 java.lang.Boolean 对象就能解决问题,因为 Jess 会自动将 java.lang.Boolea
超级会员免费看
订阅专栏 解锁全文
32

被折叠的 条评论
为什么被折叠?



