Что касается типа вывода в Java, у меня есть следующий фрагмент кода:Тип вывода в Java с итераторами?
ArrayList<String> projectNameList = new ArrayList<String>(3);
projectNameList.add("Joe");
projectNameList.add("Jim");
projectNameList.add("Josh");
Iterator it = names.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
я получаю ошибку компиляции, когда я пытаюсь напечатать имена говоря Несоответствие типов: невозможно преобразовать из объекта в строку
Я знаю, что исправить это все, что мне нужно сделать, это явно привести объект в строку, или явно объявить, что тип элементов, возвращаемых этой итератора имеют тип String, например, так:
Iterator it<String> = names.iterator();
Но я woul d подумали, что компилятор javac будет достаточно умным, чтобы указать тип, возвращаемый итератором, - это строки, которые рассматриваются как метод iterator(), который вызывается в ArrayList of Strings.
Любая причина, по которой этот тип вывода не имеет места?
Я не верю, что ваш пример дает эту ошибку. –
Вы действительно получите сообщение об ошибке, которое 'projectNameList' не объявлено. Если вы исправите это, вы не получите никакой ошибки компиляции вообще. – khelwood
Пожалуйста, разместите свой код –