ActiveX-Clientprogrammierung, Tipps für die Übergabe von Arrays
Arrays in Java und Automation-Containern wie Visual Basic und VBScript sind sehr ähnlich. Dieser Artikel beschreibt einige wichtige Punkte, die bei der Übergabe von Arrays zwischen diesen Containern beachtet werden müssen.
Bei der Übergabe von Arrays zwischen diesen Containern müssen einige wichtige Punkte beachtet werden:
- In Java-Arrays können Typen nicht gemischt werden. Alle Java-Arrays enthalten jeweils
einen Typ. Wenn Sie also Variant-Arrays an einen Java-Array übergeben, müssen Sie sicherstellen, dass alle Elemente
im Variant-Array denselben Basistyp haben. Visual Basic-Beispielcode:
... Dim VariantArray(1) as Variant VariantArray(0) = CLng(123) VariantArray(1) = CDbl(123.4) oMyJavaObject.foo(VariantArray) ' Ungültig! VariantArray(0) = CLng(123) VariantArray(1) = CLng(1234) oMyJavaObject.foo(VariantArray) ' Funktioniert!
- Arrays primitiver Datentypen werden gemäß den Regeln für die Konvertierung primitiver Datentypen konvertiert.
- Für die Bearbeitung von Arrays von Java-Objekten werden JObjectProxy-Objekte verwendet.
- Arrays von JObjectProxy-Objekten müssen vollständig initialisiert werden und den ihnen zugewiesenen Java-Typ haben. Wenn Sie in Visual Basic ein Array initialisieren (z. B. Dim oJavaObjects(1) als Objekt), müssen Sie jedes Objekt als JObjectProxy-Objekt definieren, bevor Sie das Array an ein Java-Objekt senden. Die Brücke kann den Typ von leeren Objekten und Objekten mit Nullwerten nicht bestimmen.
- Wenn Sie ein Array von einer Java-Methode empfangen, ist der untere Grenzwert immer null. Java-Methoden unterstützen nur nullbasierte Arrays.
- Verschachtelte und mehrdimensionale Arrays werden in Visual Basic- und VBScript-Containern als nullbasierte mehrdimensionale Arrays behandelt.
- Nicht initialisierte Arrays und Array-Typen werden nicht unterstützt. Beim Aufrufen einer Java-Methode, die ein Objekt-Array als Parameter verwendet, müssen Sie das Array von JObjectProxy-Objekten vollständig initialisieren.