2011-05-25 23 views
0

这是Java中的一个非常简单的例子,旨在打印出所有的系统环境变量:为什么2008年这个简单的Java示例在我的最新Eclipse/JDK中失败?

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。

回答

3

的示例代码是完全错误的 - 它不(决不会)编制和Eclipse应当表明,在代码。

问题是Map envMap是原始类型,所以envMap.keySet()也是原始类型,并且其元素不能在增强for循环中隐式转换为String

解决办法:只需将地图定义修改为:

Map<String,String> envMap = System.getenv(); 
2

因为这个例子是错误的。它应该包含线

Map<String, String> envMap = System.getenv(); 

而不是

Map envMap = System.getenv(); 
相关问题