Конвертировать JavaUtilList в NSArray?

3

Использование J2objc У меня есть JavaUtilList:

var javaArrayList:JavaUtilList = JavaArrayList()

Я хочу преобразовать этот список в NSArray:

var arr:[String] = // ????

Как преобразовать JavaUtilList в Objective-C/Swift NSArray?

Теги:
j2objc

2 ответа

1

Хороший ответ, но классы коллекции JRE также поддерживают быстрое перечисление:

+ (NSArray *)nsArrayFromList:(id<JavaUtilList>)list {
  NSMutableArray *result = [NSMutableArray array];
  for (id object in list) {
    [result addObject:object];
  }
  return result;
}
  • 0
    Какой класс содержит nsArrayFromList ?
  • 0
    Я получаю сообщение об ошибке Type 'JavaUtilList' does not conform to protocol 'SequenceType' когда я пытаюсь использовать цикл for.
Показать ещё 1 комментарий
1

Вы можете использовать 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];
}
  • 0
    Это лучший способ создать новый массив с помощью итератора?
  • 0
    Насколько мне известно, да.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню