Я новичок в Java, и я пытаюсь сделать некоторые действительно простые приложения Java. В моих попытках я столкнулся с проблемой обобщения. У меня есть список Лицо объектов. Лицо может быть От или Мать.Java Passing Type как параметр в функцию, ожидающий подтип
Тогда у меня есть несколько методов с тем же именем есть (...), но они отличаются входными параметрами. Эти методы не входят в состав Лицо класс. Один из этих методов принимает Мать как параметр, а другая принимает Отец.
Вопрос заключается в том, как динамически решать, какой метод вызывать в списке Лицо. когда я пытаюсь перебор списка и вызов o.eat (итератор) это предлагающее с ошибкой компилятора, потому что итератор типа Person но мои едят методов хотят Матерей или Отца в качестве параметров. Компилятор не знает, что у меня есть метод для каждого типа Person
До сих пор я решил мою проблему с если заявление, в котором я сравниваю тип класса по GetType() метод как с Матери и Отец, и если он равен, я могу лить Лицо в соответствующий тип.
код выглядит следующим образом:
if (person.getClass().equals(Father.class)) {
theView.eat((Father) person);
}
if (person.getClass().equals(Mother.class)) {
theView.eat((Mother) person);
}
Ешьте метод выглядит следующим образом:
public void eat(Mother m){
textArea.append(m.breakfast);
textArea.append(m.lunch);
textArea.append(m.dinner);
}
обед ужин и завтрак только некоторые строки с указанием того, что человек делает
человек является код является итератором по списку объектов Лица
Is t здесь любое лучшее решение, которое автоматизирует процесс?
Thx заранее.
Это может помочь, если включить код в ваш вопрос, чтобы продемонстрировать вашу проблему. – khelwood
Я действительно не понимаю, что он здесь делает:/ – Seth