Frage

Ich habe eine Reihe von API-Aufrufe, die Daten J # Typen zurückkehren. Ich konnte ganz gut die meisten Datentypen (Integer, Boolean, Double, Float, usw.) konvertieren.

Was ich jetzt tun müssen, ist eine java.util.Collection zu einer VB .NET Sammlung umwandeln (Arraylist?)

Hier ist mein Versuch:

Public Function MakeDotNETCollection(ByVal javaCol As java.util.Collection) As Collection

    Dim dotNetCol As Collection

    If Not javaCol Is Nothing Then
      dotNetCol = New Collection

      Dim it As IEnumerator = javaCol.iterator()

      For Each it In CType(javaCol, Collection)
        dotNetCol.Add(it.Current)
      Next it

    End If

    Return dotNetCol
  End Function

Ich erhalte einen Laufzeitfehler „Kann nicht Gussobjekt des Typs‚AbstractListlistIterator‘eingeben‚System.Collections.IEnumerator. Irgendwelche Ideen?

War es hilfreich?

Lösung

Nicht getestet, aber sollte funktionieren:

Public Function MakeDotNETCollection(ByVal javaCol As java.util.Collection) As Collection

  Dim dotNetCol As Collection

  If Not javaCol Is Nothing Then
    dotNetCol = New Collection

    Dim it As java.util.Iterator = javaCol.iterator()

    While it.HasNext()
      dotNetCol.Add(it.next())
    End While

  End If

  Return dotNetCol

End Function
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top