微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么这个2008年的简单Java示例在最新的Eclipse / JDK中失败了?

如何解决为什么这个2008年的简单Java示例在最新的Eclipse / JDK中失败了?

| 这是一个非常简单的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();
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。