Using J2objc I have a JavaUtilList:
var javaArrayList:JavaUtilList = JavaArrayList()
I want to convert this list into an NSArray:
var arr:[String] = // ????
How can I convert a JavaUtilList into an Objective-C/Swift NSArray?
Using J2objc I have a JavaUtilList:
var javaArrayList:JavaUtilList = JavaArrayList()
I want to convert this list into an NSArray:
var arr:[String] = // ????
How can I convert a JavaUtilList into an Objective-C/Swift NSArray?
You could use an iterator
to cycle through every item:
static inline NSArray *ArrayWithJavaUtilList(id <JavaUtilList> list)
{
NSMutableArray *array = [[NSMutableArray alloc] init];
id <JavaUtilIterator> iterator = [list iterator];
while ([iterator hasNext]) {
id object = [iterator next];
[array addObject:object];
}
return [NSArray arrayWithArray:array];
}
Good answer, but JRE collection classes also support fast enumeration:
+ (NSArray *)nsArrayFromList:(id<JavaUtilList>)list {
NSMutableArray *result = [NSMutableArray array];
for (id object in list) {
[result addObject:object];
}
return result;
}
If you are using J2OBJC library for building project. Then we can use Better we user IOSObjectArray instead NSArray because it gives directly IOSObjectArray by using toArray function.
**Swift version 5.0**
**Obtaining object from j2objc generated class as JavaUtilArrayList**
let a = ObjcgeneratedClassWithj2Objc().methodA(with: fileURL, withLong: 1234556679, withLong: 0)
**Printing JavaUtilArrayList**
print("\(String(describing: a))")
**Creating IOSObjectArray from JavaUtilArrayList**
let array : IOSObjectArray = (a?.toArray())!
**Iterating through array length**
for number in 0..<(array.length()-1) {
**Getting index-wise models**
let ar: ClassA = (array.object(at: UInt(number)) ?? 0) as! ClassA
**Populating another inside IOSObjectArray**
ar.getGpsData()?.toArray()
}
Soon I will post a project on this on github and try to share some code for JavaUtilArrayList to NSArray conversion also and also share with j2objc guys