Как передать тип класса в метод и работать с ним ? Допустим имеются 2 класса Cat и Dog;
В классе Main я создаю экземпляры классов и использую метод Job.doStuff (здесь и далее псевдокод)
Cat cat = new Cat(2);
Dog dog = new Dog(5);
Job.doStuff(Dog, dog) // тут поля заполняются вручную каждый раз
В классе, скажем, Job , у меня есть метод doStuff, который принимает какой-либо класс, создает пустой ArrayList типа переданного класса(Например Cat или Dog) :
Class Job {
doStuff( Class<?> , Object obj)
{ ArrayList<?> list = new....;
list.add(obj); } }
Собственно, как сделать так, чтобы метод doStuff понимал, какой класс в него передан, и, соответственно, как описать это в параметрах строки с комментарием ?
Используйте дженерики (generics):
public class Main {
public static void main(String[] args) {
Job job = new Job();
job.<Animal>doStuff(new Dog(), new Cat());
job.<Dog>doStuff(new Dog(), new Dog());
}
}
class Job {
<T> void doStuff(T ... animals) {}
}
class Animal{}
class Dog extends Animal{}
class Cat extends Animal{}
Ну или же определите метод следующим образом - void doStuff(Class ... instances) и гуглите всё про рефлексию в java.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости