java - 检索对象期间运行时异常

标签 java

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/

相关文章:

java - 在 Java 中逐像素访问图像

java - 何时手动同步 Java 线程,何时不同步

java - 从另一个 EAR 访问本地 session Bean?

java - Hive GUDF 自定义解压缩功能测试用例失败,错误为 "B cannot be cast to org.apache.hadoop.io.BytesWritable"

java - 在 titan 图形数据库中使用 gremlin 服务器加载 Json

java - Minecraft Java Minecraft.getMinecraft 无法解析为类型

java - 从 WSDL 编写 Web 服务客户端

java - 如何增加 AWS ECS 中的 Java 堆大小?

java - 错误目录步行者

java - 如何更改构建多个文件的版本?我的应用程式无法解决这个问题