public static void main(String args[])
{
List a =new ArrayList<Object>();
a.add("asha");
a.add("saha");
ArrayList<SampleObject> sampleObjects =(ArrayList<SampleObject>)a;//Yes this should not be done but still
sampleObjects.get(0).getName();// exception is thrown here
}
类(class)是
public class SampleObject implements Serializable
{
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getNumber()
{
return number;
}
public void setNumber(String number)
{
this.number = number;
}
private String name;
private String number;
}
有人可以解释一下为什么会出现这个运行时异常吗? 当类型本身不匹配时,如何将数据插入到sampleObjects中?
最佳答案
当您进行强制转换时,您承担了使所强制转换的对象(在本例中为 String)成为您要强制转换的类型(在本例中为 SampleObject)的责任。后来,在运行时,JVM 发现您没有履行该职责(String 不是 SampleObject),并抛出 RuntimeException(更准确地说是 ClassCastException)。
关于java - 检索对象期间运行时异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45609934/