@@ -148,6 +148,42 @@ jobj = jcall(T, "testArrayAsObject", JObject, ())
148148arr = convert (Array{Array{UInt8, 1 }, 1 }, jobj)
149149@test [" Hello" , " World" ] == map (Compat. String, arr)
150150
151+ # Test iterator conversions
152+
153+ JArrayList = @jimport (java. util. ArrayList)
154+ a= JArrayList (())
155+ jcall (a, " add" , jboolean, (JObject,), " abc" )
156+ jcall (a, " add" , jboolean, (JObject,), " cde" )
157+ jcall (a, " add" , jboolean, (JObject,), " efg" )
158+
159+ t= Array {Any, 1} ()
160+ for i in jcall (a, " iterator" , @jimport (java. util. Iterator), ())
161+ push! (t, unsafe_string (i))
162+ end
163+
164+ @test length (t) == 3
165+ @test t[1 ] == " abc"
166+ @test t[2 ] == " cde"
167+ @test t[3 ] == " efg"
168+
169+ # Different iterator type - ListIterator
170+ t= Array {Any, 1} ()
171+ for i in jcall (a, " listIterator" , @jimport (java. util. ListIterator), ())
172+ push! (t, unsafe_string (i))
173+ end
174+
175+ @test length (t) == 3
176+ @test t[1 ] == " abc"
177+ @test t[2 ] == " cde"
178+ @test t[3 ] == " efg"
179+
180+ # Empty List
181+ a= JArrayList (())
182+ t= Array {Any, 1} ()
183+ for i in jcall (a, " iterator" , @jimport (java. util. Iterator), ())
184+ push! (t, unsafe_string (i))
185+ end
186+ @test length (t) == 0
151187
152188# At the end, unload the JVM before exiting
153189JavaCall. destroy ()
0 commit comments