我从源代码的角度分析一下为什么 for(String s:prop.keySet()) 这里是错误的 首先我们来看一下Properties的源代码:1.png
可以发现其是继承了Hashtable<Object,Object>的。解释一下Hashtable<K,V>中K、V的意思,其中K代表Key的类型(这里为Object),而V代表Value的类型(这里为Object)。 我们再来看一下keySet方法的源代码,其返回类型是Set<K>,所以当调用Properties的keySet()方法,返回的就是集合Set,其中集合的类型为K,即Object。
所以在写foreach循环的时候,只能是Object obj:prop.keySet(),而不能是String s:prop.keySet()。
|