Измените массив Charsequence на массив String или List<String> в Java

Это должно быть просто, но я не смог найти простого ответа в одну строку. Как мне изменить CharSequence[] на String[]. Моя цель — изменить CharSequnce[] = {"a","b","c"} на List<String>, но когда я пишу Arrays.asList(a), студия Android выдает ошибку, говоря, что обязательный тип — List<String>, а предоставленный — List<CharSequence>. Кажется, мне нужно сначала изменить массив CharSequence на массив String.

Я также попробовал Arrays.asList(Arrays.toString(e)), но результат печати списка будет [[a, ,b, c]], а это не то, что мне нужно.

Обратите внимание, что CharSequence[] = {"a", "b", "c"} присваивает правую String[]CharSequence[], что вызывает вопрос: почему вы вообще используете CharSequence? Конечно, вы могли бы отобразить эти вещи: Arrays.stream(a).map(Object::toString).toList(), но это, по-видимому, расточительно по сравнению с исправлением сохраненных данных с самого начала.

Rogue 03.04.2024 17:03

Вы понимаете, что String — это CharSequence? Класс String реализует интерфейс CharSequence.

Basil Bourque 03.04.2024 18:17

@Rogue Спасибо за ответ. Это был всего лишь пример. В этом контексте я использую CharSequence (чтобы получить записи из пользовательского счетчика): TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.MultiSpinner); CharSequence[] entries = a.getTextArray(R.styleable.MultiSpinner_android_entries);

arman javadi 04.04.2024 11:01
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
3
57
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Перебрать массив, преобразовать каждый элемент в строку, добавить преобразованный элемент в результирующий список. Вы можете использовать Stream API (только один вариант):

CharSequence[] charSeqArr = //get data
List<String> result = Stream.of(charSeqArr)
            .map(CharSequence::toString)
            .toList();

Спасибо. Единственная проблема заключается в том, что Android Studio требует API >= 34.

arman javadi 04.04.2024 11:24

Другие вопросы по теме