#java #generics
#java #дженерики
Вопрос:
В настоящее время я пытаюсь создать универсальный метод, который принимает любой объект, который реализует итерацию, но я продолжаю застревать. Я думаю, что что-то не так с тем, как я записал свой параметр. Это то, что у меня есть до сих пор. Я думаю, что единственная часть, которую мне нужно исправить, — это параметр.
public class Main
{
public static <T extends Iterable> String getToString(Iterable<T> objects)
{
String total = "";
objects.toString();
for(T s: objects){
total = s "*";
}
return total;
}
Проблема в том, что когда я его вызываю,
String words = "Hello there how are you";
Iterable<String> it = Arrays.asList(words.split(" "));
System.out.println(problem2_getElements(it));
Я получаю сообщение об ошибке, которое
The method getToString(Iterable<T>) in the type Main is not applicable for the arguments (Iterable<String>)
Ответ №1:
T
не должно быть Iterable
. T
должен быть тип элемента коллекции, которую вы перебираете:
public static <T> String getToString(Iterable<T> objects)
{
String total = "";
objects.toString();
for(T s: objects){
total = s "*";
}
return total;
}