Java初学者;“path 3”方法出现编译错误[已关闭]

vnzz0bqm  于 2023-02-02  发布在  Java
关注(0)|答案(2)|浏览(106)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。

2天前关闭。
Improve this question
我是一个Java初学者,有点困惑为什么下面的代码会输出一个编译错误。
下面是代码。
我做错了什么?

import java.util.Iterator;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<String> words = List.of("Apple", "Bat", "Cat");

//        System.out.println("Apple".endsWith("le"));

        Iterator it = words.iterator();

        while (it.hasNext()) {
            if (it.next().endsWith("at")) {
                it.remove();
            }
        }

    }
}
okxuctiv

okxuctiv1#

需要将迭代器声明为Iterator<String>,以告诉编译器it.next()将返回一个String,它包含endsWith,否则它会认为it.next()将返回一个Object,它不包含endsWith

yi0zb3m4

yi0zb3m42#

你应该学习泛型是什么。你得到了错误,因为你使用了原始类型和迭代器。原始类型意味着Object类型,但是你要调用的endsWith()方法是String类型的方法,所以你应该像Iterator<String>一样声明你的迭代器来指定泛型的类型,这样编译器就知道对象的实际类型。有关泛型的更多信息,请单击此处https://docs.oracle.com/javase/tutorial/java/generics/index.html

相关问题