问题描述
|
这是一个非常简单的Java示例,旨在打印出所有系统环境变量:
http://www.devdaily.com/blog/post/java/java-how-to-print-system-env-environment-variables
代码看起来很简单-只是将环境变量作为映射进行迭代,打印每个键和值,但是当我执行代码时,出现以下错误:
Exception in thread \"main\" java.lang.Error: Unresolved compilation problem:
Type mismatch: cannot convert from element type Object to String
这里发生了什么?是示例垃圾还是我以某种方式阻止了Eclipse / JDK的设置?
仅供参考,我在Eclipse的更新版本上使用Windows XP和JDK 1.6.0_24 x86。
解决方法
示例代码完全是错误的-它不会(也永远不会)编译,并且eclipse应该在代码中显示出来。
问题在于
Map envMap
是原始类型,因此envMap.keySet()
也是原始类型,不能在增强的for循环中将其元素隐式转换为String
。
解决方案:只需将Map定义更改为:
Map<String,String> envMap = System.getenv();
,因为这个例子是错误的。它应该包含行
Map<String,String> envMap = System.getenv();
而不是
Map envMap = System.getenv();