具有上限通配符类型变量的Java迭代器

bluesky1年前 ⋅ 98 阅读

ChatGPT的回答仅作参考:

在Java中,可以使用上限通配符类型变量来限制迭代器的类型范围。具有上限通配符类型变量的Java迭代器可以迭代任何实现了指定接口的对象,或者是指定类的子类对象。

例如,假设有一个接口Animal和两个实现类Dog和Cat:

```
interface Animal {
    void makeSound();
}

class Dog implements Animal {
    public void makeSound() {
        System.out.println("Woof!");
    }
}

class Cat implements Animal {
    public void makeSound() {
        System.out.println("Meow!");
    }
}
```

现在,我们可以创建一个具有上限通配符类型变量的Java迭代器,它可以迭代任何实现了Animal接口的对象:

```
Iterator<? extends Animal> iterator = animals.iterator();
while (iterator.hasNext()) {
    Animal animal = iterator.next();
    animal.makeSound();
}
```

在这个例子中,animals是一个Animal类型的集合,它可以包含任何实现了Animal接口的对象,包括Dog和Cat。通过使用上限通配符类型变量,我们可以确保迭代器只能迭代Animal接口的实现类对象,而不能迭代其他类型的对象。

全部评论: 0

    相关推荐