public NodeList getContent(String XmlTarget, String Condition) {
// TODO Auto-generated method stub for (int i = 0; i < nodes.getLength(); i++) {
Node result = nodes.item(i);
if (result.getNodeType() == Node.ELEMENT_NODE
&& result.getNodeName().equals(XmlTarget)) {
NodeList ns = result.getChildNodes();
return ns; } else { return null;
}
} }Java

解决方案 »

  1.   

    如果list的大小是 0 ,那么返回什么?
      

  2.   

    按照你的逻辑还需要for循环么?
      

  3.   

    问题在于for一定是有结果的,我是说eclipse会自动提示代码错误,返回值如果要定义在for之外,怎么定义呢?
      

  4.   

    是不是在得到你想要的结果的时候添加一个break,退出循环啊?
      

  5.   

    问题在于for一定是有结果的,我是说eclipse会自动提示代码错误,返回值如果要定义在for之外,怎么定义呢?
    你list大小为0,都不会进for循环啊,方法就没返回值了
      

  6.   

    问题在于for一定是有结果的,我是说eclipse会自动提示代码错误,返回值如果要定义在for之外,怎么定义呢?
    你list大小为0,都不会进for循环啊,方法就没返回值了
    麻烦你可以稍微讲的通俗易懂一些吗?
      

  7.   

    我写了下面代码,你看一下package com.meritit.test;import java.util.ArrayList;
    import java.util.List;public class Test {
    public static void main(String[] args) {
    System.out.println(check());
    }

    public static boolean  check(){
    List<String> list = new ArrayList<String>();
    for (int i = 0; i < list.size(); i++) {
               return true;
            }
    return false;
    }
    }
    输出结果false你应该在for循环之外再加一个return null;
      

  8.   

    private static int getNumber()
    {
    for(int i=0;i<10;i++)
    {
    return i;
    }

    return 0;
    }这段代码如果没有return 0; 这条语句,就会提示错误。(This method must return a result of type int)
    对于编辑器来说,可能会默认的从最坏的打算进行计算,也就是无法进入循环的情况。他不会根据实际情况进行判定的。
      

  9.   

    问题在于for一定是有结果的,我是说eclipse会自动提示代码错误,返回值如果要定义在for之外,怎么定义呢?
    你list大小为0,都不会进for循环啊,方法就没返回值了
    麻烦你可以稍微讲的通俗易懂一些吗?还需要通俗点?...你for循环要搞明白啊. for (int i = 0; i < nodes.getLength(); i++) {  // 当你nodes.getLength()=0时,就不会进for循环啊      
       }->相当于这样了 for(int i=0;i<0;i++){
      System.out.println("是否进入for循环"); //  这里根本就不会进来,也就不会打印.
    }// 你在你方法的最后加个返回值吧 return null;就不会报错了
      

  10.   

    问题在于for一定是有结果的,我是说eclipse会自动提示代码错误,返回值如果要定义在for之外,怎么定义呢?
    你list大小为0,都不会进for循环啊,方法就没返回值了
    麻烦你可以稍微讲的通俗易懂一些吗?还需要通俗点?...你for循环要搞明白啊. for (int i = 0; i < nodes.getLength(); i++) {  // 当你nodes.getLength()=0时,就不会进for循环啊      
       }->相当于这样了 for(int i=0;i<0;i++){
      System.out.println("是否进入for循环"); //  这里根本就不会进来,也就不会打印.
    }// 你在你方法的最后加个返回值吧 return null;就不会报错了
    额。当I要是为零的话,我知道是不会进入FOR循环的。但如果不为零的时候这不是ECLIPSE还是会提示出错么。我记得某本书上写的循环当中返回值是无效的,是跟这个有关系吗?还有当返回了NODELIST后,最后再写一条return null,这样在取值的时候不会报错吗?
      

  11.   

    问题在于for一定是有结果的,我是说eclipse会自动提示代码错误,返回值如果要定义在for之外,怎么定义呢?
    你list大小为0,都不会进for循环啊,方法就没返回值了
    麻烦你可以稍微讲的通俗易懂一些吗?还需要通俗点?...你for循环要搞明白啊. for (int i = 0; i < nodes.getLength(); i++) {  // 当你nodes.getLength()=0时,就不会进for循环啊      
       }->相当于这样了 for(int i=0;i<0;i++){
      System.out.println("是否进入for循环"); //  这里根本就不会进来,也就不会打印.
    }// 你在你方法的最后加个返回值吧 return null;就不会报错了
    额。当I要是为零的话,我知道是不会进入FOR循环的。但如果不为零的时候这不是ECLIPSE还是会提示出错么。我记得某本书上写的循环当中返回值是无效的,是跟这个有关系吗?还有当返回了NODELIST后,最后再写一条return null,这样在取值的时候不会报错吗?
    eclipse只是个编译器,只会从语法角度上来判断是否有错误,并不会智能到知道你nodes具体大小是多少.
    当你nodes不为0时,进入for循环后必然是有返回值的,方法最后的return null就不会执行了,这个是给当nodes=0时的返回值.另外感觉你for循环也有问题.. for (int i = 0; i < nodes.getLength(); i++) {
                Node result = nodes.item(i); // 当取第一个时,你下面马上用if-else判断返回值退出方法了,这样第二,第三个Node就根本没有遍历到,也就是说你这for循环毫无意义..
                if (result.getNodeType() == Node.ELEMENT_NODE
                        && result.getNodeName().equals(XmlTarget)) {
                    NodeList ns = result.getChildNodes();
                    return ns;
     
                } else {
     
                    return null;
                }
            }
      

  12.   

    for 中尽量用赋值,不推荐把return 放在循环当中。因为,循环中得到的值,可能是Null,或者出错。这样会导致整个Process停止。