У меня есть метод, как this-ява Использование дженериков возвращать более одного типа
public List<Apples> returnFruits(String arg1){
List<Apples> fruits = new ArrayList<Apples>();
Apple a = new Apple();
fruits.add(a);
return fruits;
}
Я хотел бы изменить его, так что я могу определить тип фруктов из вызова метода и возвращает этот фрукт список. Таким образом, 2-й оператор должен динамически создавать список фруктов, которые я передаю. Я подумал об этом:
public List<?> returnFruits(String arg1){
List<T> fruits = new ArrayList<T>();
T t = new T();
fruits.add(t);
return fruits;
}
Но не знаю, как правильно это сделать, как вы можете видеть.
Во втором методе, я просто вернуть фрукты вместо list-
public T returnFruit(){
T t = new T();
return t;
}
Плоды, которые передаются НЕ в той же иерархии классов и различных типов.
спасибо.
+1; Я с тобой согласен. Тем не менее существует риск того, что 'clazz' не имеет конструктора по умолчанию (нулевой аргумент). Это приведет к сбою 'newInstance'. – home
Согласен. давайте взглянем на решение yshavit здесь, предложим отличное решение с построителем интерфейса. ;) – Nicocube
Спасибо за ваше решение. У вас есть идея, как я могу выполнить метод по типу объекта с помощью вашего решения. Итак, если у Apple есть метод, задающий цвет, я не думаю, что могу сказать t.setColor(); Есть ли способ вызвать эту функцию? Благодарю. – Maryam