Java。 Foreach:通用类中的不兼容类型

时间:2019-01-25 17:56:40

标签: java

import java.util.Iterator;

public class Main {
    public static class ShouldBeIterable<T> implements Iterable<Integer> {
        @Override
        public Iterator<Integer> iterator() {
            return null;
        }
    }

    public static void main(String[] args) {
        ShouldBeIterable it = new ShouldBeIterable();

        for (Integer i : it) {
            System.out.println("Bla");
        }
    }
}

上面的代码编译时出现以下错误:

Error:(17, 26) java: incompatible types: java.lang.Object cannot be converted to java.lang.Integer

但是,如果我将 it 生成几乎任何类型(甚至是Object),该错误就会消失。

为什么?它是如何工作的?在不使用泛型的情况下如何解决此问题?

0 个答案:

没有答案