Dim MyArray(10, 20) As Int
Dim r As Reflector
Dim dims(0) As Int
r.Target = MyArray
dims = r.TargetRank
Log("array dimension: " & dims.Length & " Bounds " & dims(0) & " " & dims(1))
Wonder,
there is no magic within this code. It uses the possibility of java called reflection which let you examine java classes at runtime, but this you already knows. And it is not my code, "big brother" google found it for me....but thanks for the honor
Dim MyArray(10, 20) As Int
Dim r As Reflector
Dim dims(0) As Int
r.Target = MyArray
dims = r.TargetRank
Log("array dimension: " & dims.Length & " Bounds " & dims(0) & " " & dims(1))
Sub GetArrayInfo(oArray As Object) As Int()
Dim i As Int
Dim r As Reflector
Dim dims() As Int
r.Target = oArray
dims = r.TargetRank
Dim arrInt(dims.Length + 1) As Int
arrInt(0) = dims.Length
For i = 0 To dims.Length -1
arrInt(i + 1) = dims(i)
Next
Return arrInt
End Sub
Sub GetArrayInfo(oArray As Object) As Int()
Dim i As Int
Dim r As Reflector
Dim dims() As Int
r.Target = oArray
dims = r.TargetRank
Dim arrInt(dims.Length + 1) As Int
arrInt(0) = dims.Length
For i = 0 To dims.Length -1
arrInt(i + 1) = dims(i)
Next
Return arrInt
End Sub
Replying to conversation from Exemes regarding this:
Yes, still working fine, using Reflection library 2.4:
B4X:
Sub GetArrayInfo(oArray As Object) As Int()
Dim i As Int
Dim r As Reflector
Dim dims() As Int
r.Target = oArray
dims = r.TargetRank
Dim arrInt(dims.Length + 1) As Int
arrInt(0) = dims.Length
For i = 0 To dims.Length -1
arrInt(i + 1) = dims(i)
Next
Return arrInt
End Sub
Sub TestArrayDims
Dim i As Int
Dim arr2D(4,2) As String
Dim arrInt() As Int = GetArrayInfo(arr2D)
For i = 0 To arrInt.Length - 1
Log("arrInt(" & i & "): " & arrInt(i))
Next
End Sub