Domanda

Ho una serie di chiamate API che stanno tornando J # tipi di dati. Sono stato in grado di convertire la maggior parte dei tipi di dati (intero, booleani, doppie, Float, ecc) più che bene.

Che cosa devo fare ora è di convertire un java.util.Collection ad una collezione VB .NET (ArrayList?)

Ecco il mio tentativo:

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

Continuo a ricevere un errore di runtime "Impossibile oggetto cast di tipo 'AbstractListlistIterator' digitare 'System.Collections.IEnumerator. Tutte le idee?

È stato utile?

Soluzione

Non testato, ma dovrebbe funzionare:

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top