Как использовать абстрактный класс, если мне нужно инициализировать дочерние классы? - PullRequest
0 голосов
/ 20 марта 2020

У меня есть класс pojo - "Person", и классы расширяют это: "Employee" и "Customer". Я хочу сделать метод для пользовательского тестирования. Но я не знаю заранее, какой из них (сотрудник или клиент) понадобится. Я хотел бы написать этот метод для 2 лиц. Как написать что-то в 'p' переменной инициализации. Некоторые занятия по продлению личности. Мой код не работает. Заранее спасибо. Я хотел бы заполнить общие поля для обеих организаций. Могу ли я реализовать это без использования интерфейса?

public static Person fillRandomRecord(){
    Person p = <? extends Person>;
    p.setName(getRandomName());
    p.setSurname(getRandomSurname());
    p.setPatronymic(getRandomPatronymic());
    p.setDateOfBirth(getRandomDate());
    p.setPhone(getRandomPhone());
    p.setEmail(getRandomEmail());
    return p;
}

1 Ответ

2 голосов
/ 20 марта 2020

Вы можете заставить метод принимать Person в качестве параметра public static Person fillRandomRecord(Person p){...}, а затем просто указать его fillRandomRecord(new Customer()) или fillRandomRecord(new Employee()) при вызове.

...