Задать вопрос
Umr001
@Umr001
php

Почему нельзя использовать ArrayList вне функции?

Почему нельзя использовать ArrayList вне функции? Понимаю, что смысла в этом мало, но вопрос назрел

import java.util.*;

public class Tmp {

    ArrayList<Integer> LI = new ArrayList<Integer>();
    LI.add(1231);
}
  • Вопрос задан
  • 343 просмотра
Подписаться 1 Оценить 7 комментариев
Решения вопроса 4
@frozen_coder
Java-developer
LI.add(1231);

В Java не функции, а методы класса, вы пытаетесь вызвать метод на поле класса вне метода, в определении класса. Да так вообще ни с чем нельзя. Если вам нужно установить начальное значение компонента, то делайте это в конструкторе.
Ответ написан
Комментировать
AxianLTD
@AxianLTD
Почему нельзя? Кто запретил?
Ответ написан
Если очень хочется, то можно так, в анонимном классе:
public class Tmp {
        ArrayList<Integer> LI = new ArrayList<Integer>() {{
            LI.add(1231);
        }};
    }


но не рекомендуется, ввиду различных побочных эффектов, например, при сериализации.
Ответ написан
@Px2
В Java класс состоит из объявлений полей и методов.
Такая запись корректна:

public class Tmp {
    ArrayList<Integer> LI = new ArrayList<Integer>();
}


Здесь объявлено поле LI и сразу инициализировано.

Вызовы методов или другие операции, должны размещаться только внутри объявлений методов. Например, так:

public class Tmp {
    ArrayList<Integer> LI = new ArrayList<Integer>();

   public void populateList() {
        LI.add(1231);
    }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы