if(this.Name.equals(name)) 的时候才return p
那如果不equal不就没有东西return了~

解决方案 »

  1.   

    Person p = (Person)list.get(i); 
    if(this.Name.equals(name)) 
    return p; 
    同意再写个else
      

  2.   


    for(int i=0;i <list.size();i++) 

    Person p = (Person)list.get(i); 
    if(this.Name.equals(name)) 
    return p; 
    } 当list为空的时候,该函数是没有返回Person对象的
      

  3.   


    if(this.Name.equals(name)) 
    return p; 就算当list不为空,没找到匹配项还是没有返回
      

  4.   

    是不是因为if(this.Name.equals(name))为 false时缺少缺少返回语句?
      

  5.   

    public Person findByName(List list, String name)
    {
        for(int i=0;i <list.size();i++)
        {
            Person p = (Person)list.get(i);
          
            if(this.Name.equals(name))
                return p; // found
            }
            return null; // not found
        }

    也可以使用 空对象 模式重构
      

  6.   

    你的class person哪去了?
    import java.io.*; 
    import java.util.*; 
    class Person{ 
    private String ID; 
    private String Name; 
    private String Mail; 
    private int Age; 
    private String City; 
    class Person{//你不写Person类怎么调用Person实例
    public Person() 
    {}
    public Person(String ID, String Name, String Mail, int Age, String City) 

    this.ID=ID; 
    this.Name=Name; 
    this.Mail=Mail; 
    this.Age=Age; 
    this.City=City; 

    public String getID() 

    return this.ID; 

    public String getName() 

    return this.Name; 

    public String getCity() 

    return this.City; 

    public Person findByName(List list, String name) 

    for(int i=0;i <list.size();i++) 

    Person p = (Person)list.get(i); 
    if(this.Name.equals(name)) 
    return p; 


    }
    {} 
      

  7.   

    用个eclipse,它能给你语法错误提示
      

  8.   

    同意6楼,在没有匹配结果的时候,返回一个null
      

  9.   


    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */package exp1;/**
     *
     * @author szhu5
     */
    import java.io.*;
    import java.util.*;
    class Person{
        private String ID;
        private String Name;
        private String Mail;
        private int Age;
        private String City;public  Person()
        {
        }
    public Person(String ID, String Name, String Mail, int Age, String City)
        {
        this.ID=ID;
        this.Name=Name;
        this.Mail=Mail;
        this.Age=Age;
        this.City=City;
        }
    public String getID()
        {
        return this.ID;
        }
    public String getName()
        {
        return this.Name;
        }
    public String getCity()
        {
        return this.City;
        }
    public Person findByName(List list, String name)
    {
        for(int i=0;i <list.size();i++)
            {
                Person p = (Person)list.get(i);
                    if(this.Name.equals(name))
                        {
                        return p;
                        }
                    
             }
            return null;
        }
    public class ComparatorUser implements Comparator{    public int compare(Object arg0, Object arg1) {
      Person user0=(Person)arg0;
      Person user1=(Person)arg1;
      int flag=user0.getID().compareTo(user1.getID());  return flag;
      }
    }
    }
    这个class算好了,但那个另一个需要啥封闭实例
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */package exp1;import exp1.Person.ComparatorUser;
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;/**
     *
     * @author szhu5
     */
    public class Tester{public static void main(String [] args)
    {
    List list = new ArrayList();
    list.add(new Person("2","b","[email protected]",22,"shanghai"));
    list.add(new Person("3","lucky","[email protected]",22,"beijing"));
    list.add(new Person("1","a","[email protected]",21,"dalian"));
    ComparatorUser comparator=new ComparatorUser();
    Collections.sort(list,comparator);
    for(int i=0;i <list.size();i++)
    {
    Person p = (Person)list.get(i);
    System.out.println(p.getID());
    }
    }
    }
      

  10.   


    额,你觉得lz代码第三行那是什么?私有成员变量都出来了你在那里写class也太晚了吧最后添个return null吧
      

  11.   

    哎,人家就问个编译错误而已。。至于么。。 public Person findByName(List list, String name) {
    Person p = null;
    for (int i = 0; i < list.size(); i++) {
    if (this.Name.equals(name))
    p = (Person) list.get(i);
    }
    return p;
    }这样不就好了嘛。
      

  12.   

    if(this.Name.equals(name)) 换成if(p.Name.equals(name))
    }外面再加个return null;
      

  13.   

    public Person findByName(List list, String name)
    {
    Person m=new Person();
    for(int i=0;i <list.size();i++)
    {
    Person p = (Person)list.get(i);
    if(this.Name.equals(name))
    m = p;
    }
    return m;
    } 这么写应该可以吧
      

  14.   

    自己debug一下 不就O了 
      

  15.   

    代码不规范,当List为空的时候  得有返回值啊  写成return null;
      

  16.   


        public Person findByName(List list, String name) {
            Person p = null;
            for (int i = 0; i < list.size(); i++) {
                if (this.Name.equals(name))
                    p = (Person) list.get(i);
            }
            return p;
        }