没为类型 Node 定义方法 getTextContent (zz),setTextContent(zz)等方法

格言:好记性不如烂笔头


最近在实现一个功能时用到 Node 接口中的 setTextContent()方法,但是调用的时候报错,提示没有该方法,查看jdk1.6的api文档后,发现Node接口有该方法,于是网上查找资料,发现原因如下:项目中的xml-apis-*.*.*.jar包的问题,该包中也有org.w3c.dom.Element和org.w3c.dom.Node接口,但是他们提供的方法和我使用的jdk不太一样,也就是说程序默认调用了项目中xml-apis-*.*.*.jar中的接口方法,而不是调用jdk中的接口方法。

解决办法:修改eclipse中的java编译器编译顺序。右键点击项目--》build path,configuration Build Path...。这是jre 在  builder path 的最下层,所以编译器没有使用JRE 中的类,这时需要将JRE 的位置网上调节,选择旁边的复选框,然后使用右边的Down 和 Up 按钮 (现在JRE已经在最底层了,所以此时的Down 按钮不可用)就可以调节JRE的位置了。将JRE的位置调到Web APP Library上面 就ok 了。 


网上参考的资料如下:

http://www.bubuko.com/infodetail-743040.html

没有为类型 Node 定义方法 getTextContent (zz)
晚上下班的时候,把班上写了半截的代码带了回来。结果回到家后出乎意料的是回来的时候将代码导入eclipse后,下面这行代码就直接报错了,显示 getTextContent()未定义 。
         ((Element) ele.getElementsByTagName( "err_code").item(0 )).getTextContent();
       首先想到的是jdk 的版本问题,不可能啊,我昨天才装的jdk 1.6.0_24 , 查看jdk文档 org.w3c.dom.Element, 在其父接口org.w3c.dom.Node 中是有getTextContent() 这个方法,奇了怪了。 google 了一番,才发现项目中xml-apis.jar 其中也有一个 org.w3c.dom.Element, 实际调用中,java 编译器使用了这个类,而没有使用jdk中的类。真相到此大白。

        解决方法就需要改一下java 编译器编译顺序。
        下面是eclipse 中的截图和修改说明:       
         这是jre 在  builder path 的最下层,所以编译器没有使用JRE 中的类,这时需要将JRE 的位置网上调节,选择旁边的复选框,然后使用右边的Down 和 Up 按钮 (现在JRE已经在最底层了,所以此时的Down 按钮不可用)就可以调节JRE的位置了。将JRE的位置调到Web APP Library上面 就ok 了。 

你可能感兴趣的:(java编译器顺序)