使用J2objc我有一个JavaUtilList:将JavaUtilList转换为NSArray?
var javaArrayList:JavaUtilList = JavaArrayList()
我想这个列表转换成一个NSArray:
var arr:[String] = // ????
我怎么能转换成JavaUtilList一个Objective-C /斯威夫特的NSArray?
使用J2objc我有一个JavaUtilList:将JavaUtilList转换为NSArray?
var javaArrayList:JavaUtilList = JavaArrayList()
我想这个列表转换成一个NSArray:
var arr:[String] = // ????
我怎么能转换成JavaUtilList一个Objective-C /斯威夫特的NSArray?
您可以通过每一个项目使用iterator
循环:
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];
}
很好的回答,但JRE的集合类也支持快速列举:
+ (NSArray *)nsArrayFromList:(id<JavaUtilList>)list {
NSMutableArray *result = [NSMutableArray array];
for (id object in list) {
[result addObject:object];
}
return result;
}
这是我能做到创建的最佳方式一个使用迭代器的新数组? – confile
据我所知,是的。 – Rufel