Java - 迭代器 : "Syntax error, parameterized types are only available if source level is 5.0"

标签 java iterator

我特意以 Java OS 1.4.2 为目标

我正在尝试结合 apache 的 POI 使用迭代器来读取 excel 电子表格。

代码在 java 1.5 中运行完美,但在 1.4.2 版本中我得到问题主题中列出的错误。

代码是:

Iterator<HSSFRow> myIter = null;

*更新 - 删除了空声明,并立即将其设置为集合。仍然得到同样的错误! “Iterator cannot be resolved to a type”(迭代器是一种抽象类型)。在我尝试从迭代器获取值之前发生此错误!

Iterator itRows = hsSheet.rowIterator();

    • 我还导入了 HSSFRow 变量

它在那行代码处中断,这行代码显然位于应用程序的开头。我不明白需要做什么来纠正这个问题。如果您有任何见解,请告诉我!

最佳答案

1.5 以下版本的 Java 不处理泛型类型(又名由其他类型参数化的类型:List)。

要在 Java 1.4 中运行您的代码,您需要放弃泛型类型参数并自己进行强制转换。

Iterator myIterator = // initialize it
HSSFROW row = (HSSFROW)myIterator.next();

一个更完整的例子:

List collection = new ArrayList();

collection.add("a");
collection.add("b");
collection.add("c");

Iterator myIterator = collection.iterator();

while ( myIterator.hasNext() ) {
    String value = (String) myIterator.next();
    System.out.println("value: " + value);
}

输出为:

value: a
value: b
value: c

关于Java - 迭代器 : "Syntax error, parameterized types are only available if source level is 5.0",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2985530/

相关文章:

java - Spring套件工具。文件夹和文件图标上有一些奇怪的桶和问号

java - 定期刷新 JList 中的项目 (Java SWING)

java - 使用Iterator的remove()方法从ArrayList中删除所有null

java - Guava 库中的 Iterators.any

c++ - 如何使用 std::reverse_iterator 删除 *AND CONTINUE*?

c++ - 从 back_insert_iterator 中提取容器的 value_type 的特征类

java - 2 具有红色背景的java中矩形的平滑圆角

Java 按名称排序对象列表,但一个对象应始终位于顶部

java - 大多数 Iterators 和 Iterables 方法都是 LAZY!这是什么意思

java - 尝试在 java 中构建非常简单的 Web 服务器,但它卡住了