Уважаемые сэнсэи, гуру и мастера Йоды Java, нужна подмога. Ситуация тривиальная, но тревожащая мой покой. Возможно ли в Java обратиться к элементу ArrayList
типа Object
по какому-то из его полей? В идеале мы вводим с клавиатуры строку "January" сравниваем её с полем объекта jan через foreach (я полагаю) и что-то тогда уже выводим. А в идеале было бы чудно, если бы можно было проверить есть ли поле January хоть у какого-то объекта в ArrayList
:)
public class Test{
String monText;
int monChislo;
public Test(String monText, int monChislo){
this.monText = monText;
this.monChislo = monChislo;
}
public static void main(String[] args) throws IOException {
Test jan = new Test("January", 1);
Test feb = new Test ("February", 2);
Test mar = new Test ("March", 3);
ArrayList<Object> list = new ArrayList<>();
list.add(jan);
list.add(feb );
list.add(mar );
String month = reader.readLine();
for (Object obj: list) {
if (что сюда написать?)
}
}
}
Object
- это суперкласс для всех классов, поэтому он может содержать любой тип. Если тип объектов известен, то можно кастить в рантайме к нужному типу, и тогда уже использовать его поля. Просто надо различать тип объекта при компиляции может отличаться от типа в рантайме.
Поскольку все объекты имеют известный тип, то нет необходимости кастить к нужному типу, вместо этого нужно использовать тип параметра объекта ArrayList
.
Test jan = new Test("January", 1);
Test feb = new Test ("February", 2);
Test mar = new Test ("March", 3);
ArrayList<Test> list = new ArrayList<>();
list.add(jan);
list.add(feb );
list.add(mar );
String month = reader.readLine();
for (Test obj: list) {
if (obj.monText...)
}
}
Нельзя. Придётся привести obj
к типу имеющему нужные поля.
for (Object obj: list) {
String month = ((Test) obj).monText;
if ("January".equals(month))
..
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
У меня есть небольшая программа, в которой есть ComboBox элементДанный элемент принимет 5 значений для примера
Сейчас изучаю ввод-вывод, столкнулся с таким понятие как каталог, не очень понимаю что это, можете объяснить?
У меня есть объект Timestamp в который записано значение
Прочитал вот это: Полный или абсолютный путь — это путь, который указывает на одно и то же место в файловой системе, вне зависимости от текущего...