这不是泛型的原因啊,这段代码里支持泛型的只有ArrayList<E>和Iterator<E>。你用到的是Number这个抽象类。Number 类是所有数值类型的基类,比如 Integer, Float, Double, Byte, Short, Long 等。你想要转化成float 还要做一步转换才行。
Float a = iterator.next().floatValue();
如楼上所说,Number是所有数字类型的基类,基类可以用于接收子类,但子类无法接收父类。
Float is a Number, but Number may not be a Float.