Параметризированный метод для Class<T>

251
18 ноября 2017, 10:07

Есть интерфейс Animal и 2 класса реализующих этот интерфейс : Dog и Cat

Я хочу создать метод использующий параметризированную рефлексию (я делаю так):

public static Animal create(String name, Class<Animal> myClass){
      return myClass.getConstructor(new Class[]{String.class}).newInstance(name);
}

Но в main я не могу передать в метод Dog.class, почему?

Answer 1

Ваш метод принимает только Animal

используйте Class<? extend Animal> myClass - так вы укажите что метод может принимать классы Animal и любых наследников Animal

READ ALSO
Вектор пар в Java

Вектор пар в Java

Как создать вектор пар?

302
Как написать обработчик аннотации?

Как написать обработчик аннотации?

У меня задача написать аннотацию подобную @Value в SpringBootТоесть любое поле аннотированое @Prop("${value}") должно получить значение из properties файла

292
Android: После нажатия на кнопку back не отображаются данные из предыдущей активити

Android: После нажатия на кнопку back не отображаются данные из предыдущей активити

У меня есть DishesActivity и DishActivityИз DishesActivity я попадаю в DishActivity и при нажатии на кнопку home(back) в тулбаре я попадаю на DishesActivity, но он почему-то пустой

252