ActiveX 客户机传递数组编程、提示
Java™ 和 Automation 容器(例如 Visual Basic 和 VBScript)之间的数组非常类似。本主题提供了在这些容器之间传递数组时要考虑的一些重点。
这里是在这些容器之间向后和向前传递数组时一些要考虑的重点:
- Java 数组不能混合类型。所有的 Java 数组包含单一类型,因此在传递变体数组到 Java 数组时,必须保证变体数组中的所有元素都是同一基本类型。例如,在 Visual Basic 代码中:
... Dim VariantArray(1) as Variant VariantArray(0) = CLng(123) VariantArray(1) = CDbl(123.4) oMyJavaObject.foo(VariantArray) ' Illegal! VariantArray(0) = CLng(123) VariantArray(1) = CLng(1234) oMyJavaObject.foo(VariantArray) ' This works
- 使用基本数据类型转换中定义的规则转换基本类型的数组。
- 通过 JObjectProxy 对象数组处理 Java 对象数组。
- JObjectProxy 对象数组必须完全开始,且正确关联 Java 类型。 当在 Visual Basic 中初始化数组(例如 Dim oJavaObjects(1) as Object)时,必须设置每个对象为 JObjectProxy 对象,然后再发送数组到 Java 对象。 网桥不能确定 null 类型或空对象值。
- 当接收来自 Java 方法的数组时,下边界总是为 0。Java 方法只支持基于 0 的数组。
- 在 Visual Basic 和 VBScript 容器中,嵌套的或多维数组被视为基于零的多维数组。
- 不支持未初始化的数组或数组类型。调用使用对象数组作为参数的 Java 方法时,必须完全初始化 JObjectProxy 对象数组。