Programmation de client ActiveX, conseils pour l'échange de tableaux
Les tableaux Java™ ressemblent de très près aux tableaux des conteneurs d'automatisation (Automation), tels que Visual Basic et VBScript. Cette rubrique contient des éléments importants à prendre en compte lorsque vous échangez des tableaux entre ces conteneurs .
Tenez compte des points suivants lorsque vous échangez des tableaux entre ces conteneurs :
- Les tableaux Java n'acceptent qu'un seul type. Tous les tableaux Java ne contiennent qu'un type. Par conséquent, lorsque vous passez des tableaux Variant à un tableau Java, assurez-vous que tous les éléments du tableau Variant comportent le même type de base. Par exemple, dans le code 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) ' Fonctionne
- Les tableaux de types primitifs sont convertis suivant les règles définies dans la conversion des types de données primitifs.
- Les tableaux d'objets Java sont traités par l'intermédiaire de tableaux d'objets JObjectProxy.
- Les tableaux d'objets JObjectProxy doivent avoir été totalement initialisés et être du type Java correct. Lorsque vous initialisez un tableau sous Visual Basic (par exemple, Dim oJavaObjects(1) as Object), vous devez affecter chaque objet à un objet JObjectProxy avant de transmettre le tableau à un objet Java. La passerelle est incapable de déterminer le type des valeurs d'objets null ou vides.
- Lors de la réception d'un tableau issu d'une méthode Java, la limite inférieure est toujours de zéro. Les méthodes Java ne prennent en charge que les tableaux basés sur zéro.
- Les tableaux imbriqués ou multidimensionnels sont traités en tant que tableaux multidimensionnels à base zéro dans les conteneurs Visual Basic et VBScript.
- Les tableaux non initialisés ou types tableaux ne sont pas pris en charge. Lors de l'appel d'une méthode Java utilisant un tableau d'objets en tant que paramètre, vous devez initialiser complètement le tableau d'objets JObjectProxy.