Вопрос глупый, но сижу уже несколько часов. Мне нужно в созданный массив добавить кучу текстовых строк. Я хочу сделать это методом, который можно убрать подальше. Но реализация подкачала в области синтаксиса((
Я догадываюсь что ошибка в объявлении и, возможно, вызове метода. Как будет проще и правильнее написать этот кусок?
Спасибо.
P.S. Там строк под сотню, я просто убрал для примера
public static void main(String[] args) {
setVariables();
ArrayList<Boolean> answers = new ArrayList<Boolean>(); // ответы да и нет
ArrayList<String> questions = new ArrayList<String>(); // текст вопросов
questions.addQuestions();
}
public static addQuestions(ArrayList<String>) {
ArrayList<String> questions = new ArrayList<String>();
questions.add("У Вас чаще бывает веселое и беззаботное настроение?");
questions.add("Вы чувствительны к оскорблениям?");
return questions;
}
Вам нужно не передать массив в метод, а вернуть из метода заполненный ArrayList
(не путайте с массивом, это другой тип). То, что вы пытаетесь сделать -- questions.addQuestions();
-- это попытка вызвать метод addQuestions()
объекта questions
. Для того, чтобы так можно было сделать, нужно, чтобы объект questions
относился к классу, у которого определен метод addQuestions()
. НО у вас questions
объявлен как объект класса ArrayList
. У этого класса есть методы add()
, forEach()
, clear()
и прочие (смотрите справку), но нет метода addQuestions()
, именно поэтому компилятор на ваш код и ругается.
Я бы сделал вот так:
public static void main(String[] args) {
setVariables();
ArrayList<Boolean> answers = new ArrayList<>(); // Тоже
List<String> questions = сreateQuestionList();
}
public static List<String> сreateQuestionList() { // Создает и возвращает список
ArrayList<String> questions = new ArrayList<>();
questions.add("У Вас чаще бывает веселое и беззаботное настроение?");
questions.add("Вы чувствительны к оскорблениям?");
return questions;
}
А вообще читайте сообщения об ошибках, которые выдает компилятор. Чаще всего они прямо и недвусмысленно указывают на ошибки в вашем коде.
Прочитайте также какую-нибудь книжку по Java
(см. Книги и учебные ресурсы по Java), тогда дело пойдет быстрее и шишек меньше будет.
Вам нужно просто сделать void
, которые ничего не возвращает и просто заполняет список (это не массив). В этот метод вы передаёте только ссылку на список, через которую в него добавляются элементы. И метод addQuestions
вызывается напрямую, он относится к текущему классу, а не к списку.
public static void main(String[] args) {
setVariables();
ArrayList<Boolean> answers = new ArrayList<Boolean>();
ArrayList<String> questions = new ArrayList<String>();
addQuestions(questions);
}
public static void addQuestions(ArrayList<String> questions) {
questions.add("У Вас чаще бывает веселое и беззаботное настроение?");
questions.add("Вы чувствительны к оскорблениям?");
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как сделать чтобы валидация происходиладля всех полей сразу а не по одному
Дано число n (n > 1)Выведите строку, состоящую из простых чисел, меньших n