есть три arrayList:
private ArrayList
есть switch который в зависимости от выбранного передает в метод arraList:
switch (checkInt()) {
case 1:
searchName(clothes);
break;
case 2:
searchName(computers);
break;
case 3:
searchName(smartphones);
break;}
собственно вопрос: как метод searchName должен принимать arrayList
searchName(???????????????){
}
Ответ
Максим,
сразу бросилось в глаза, что у вас тип переменно класс, а не интерфейс. Best практика советует использовать как раз-таки интерфейс, например:
private List
Касательно Вашего вопроса, можно использовать generic методологию:
public
В вопросе неизвестно являются ли классы Clothes, Computer и Smartphone наследниками какого-то другого класса или интерфейса. Если бы они таки являлись, например:
interface Goods {
int price();
int name();
int amount();
}
class Clothes implements Goods {
...
}
class Computer implements Goods {
...
}
То в таком виде код бы стал более лаконичным:
Инициализация:
private static List
Наполнение:
clothes.add(new Clothes());
computers.add(new Computers());
Метод остался бы унифицированным:
public void searchName(List
А вызов метода одинаковый для каждой из коллекций:
searchName(clothes);
searchName(computers);
В худшем случае в варианте с generics можно будет определять какой именно объект пришел, используя instanceof оператор.
Комментариев нет:
Отправить комментарий