EntrytoEntry
Entry<String,String>toEntry<Object, Object>强转问题
import java.util.Iterator;
import java.util.Map.Entry;
import java.util.Properties;
import java.util.Set;
public class Demo5 {
public static void main(String[] args) throws Exception {
Properties p=System.getProperties();
Set<Entry<Object,Object>>entrys=p.entrySet();
Iterator<Entry<Object, Object>>it=entrys.iterator();
while(it.hasNext()){
Entry<String,String> enty=(Entry<String,String>)it.next();//为什么不能强转
}
}
}
------解决思路----------------------
就像数组Object[]你要给他转成String[]一样转不了的啊...
------解决思路----------------------
虽然String是Object的子类,但泛型Entry<String,String>和Entry<Object, Object>之间没有继承关系,没有什么联系
------解决思路----------------------
泛型的类型检查和引用类型不同,泛型不能强转,因为强转可能异常,这就违背泛型编译期约束的初衷了
import java.util.Iterator;
import java.util.Map.Entry;
import java.util.Properties;
import java.util.Set;
public class Demo5 {
public static void main(String[] args) throws Exception {
Properties p=System.getProperties();
Set<Entry<Object,Object>>entrys=p.entrySet();
Iterator<Entry<Object, Object>>it=entrys.iterator();
while(it.hasNext()){
Entry<String,String> enty=(Entry<String,String>)it.next();//为什么不能强转
}
}
}
------解决思路----------------------
就像数组Object[]你要给他转成String[]一样转不了的啊...
------解决思路----------------------
虽然String是Object的子类,但泛型Entry<String,String>和Entry<Object, Object>之间没有继承关系,没有什么联系
------解决思路----------------------
泛型的类型检查和引用类型不同,泛型不能强转,因为强转可能异常,这就违背泛型编译期约束的初衷了