Catnapper__ 2015-12-30 14:28 采纳率: 0%
浏览 1975

为什么这段代码返回的element 为 null

Element ele =
(Element) d.selectSingleNode("//province[@name='"+ pname + "']");
首先 这里的pname 测试过是有值的 看了半天 愣是不知道。

  • 写回答

2条回答 默认 最新

  • HaleGe 2015-12-30 15:47
    关注

    你这里用到了强制转换,引用其他论坛的一个例子来说明这个问题:
    假设Person有两个子类Student和Employee。

    new Student(); //一个学生对象
    Person p1 = new Student(); 让一个Person引用指向Student对象。
    Student stu1 = (Student)p1; //ok:将p转换为原类型。

    Person p2 = new Employee();
    Student stu2 = (Student)p2; //error: 试图将一个Employee强转为一个Student,会抛ClassCastException(类型转换异常)

    Person p3 = new Person();
    Student stu3 = (Student)p3; //error: 试图将父类转为子类,抛ClassCastException

    所以你要确保的是d.selectSingleNode返回值为Element的父类,在此基础上,如果element仍旧返回null
    那么说明问题出在了d.selectSingleNode()函数内部,这里你没有放代码,所以也没法进一步判断了
    依据你的描述,这会儿JVM没有报错,那么多半是d.selectSingleNode()函数出了问题

    评论

报告相同问题?

悬赏问题

  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 个人网站被恶意大量访问,怎么办
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制