黑马程序员技术交流社区

标题: 求助!!! [打印本页]

作者: 刘一锋    时间: 2011-10-11 19:01
标题: 求助!!!
为什么输出时null呢?
  1. import java.util.*;
  2. class Employee
  3.         { private String name;
  4.         private char sex;
  5.         private int birthday;
  6.         private String degree;
  7.         private String title;
  8.         private String address;
  9.         private String telephone;

  10.        
  11.        
  12.         public Employee( char sex, int birthday, String degree, String title, String telephone)
  13.                 {       
  14.                         this.sex =sex;
  15.                         this.birthday =birthday;
  16.                         this.degree =degree;
  17.                         this.title =title;
  18.                         this.title =title;
  19.                         this.telephone=telephone;
  20.                         }
  21.         public Employee(String name)
  22.         {
  23.                 this.name =name;
  24.                
  25.         }
  26. public void setName(String name)
  27.                 {        this.name =name; }
  28.         public void setSex(char sex)
  29.                 {        this.sex =sex; }
  30.         public void setBirthday(int birthday)
  31.                 {this.birthday =birthday;        }
  32.         public void setDegree(String degree)
  33.                 {        this.degree =degree;}
  34.         public void setTitle(String title)
  35.                 {        this.title =title;}
  36.         public void setAddress(String address, String title)
  37.                 {        this.title =title;}
  38.         public void setTelephone(String telephone)
  39.                 {        this.telephone=telephone;}

  40.                          
  41.         public String getName()
  42.         {
  43.                 return name;
  44.         }
  45.                            
  46.         public char getSex()
  47.         {
  48.                 return sex;
  49.         }
  50.                          
  51.         public int getBirthday()
  52.         {
  53.                 return birthday;
  54.         }
  55.         public String getDegree()
  56.         {
  57.                 return degree;
  58.         }
  59.                         
  60.         public String getTitle()
  61.         {
  62.                 return title;
  63.         }
  64.                         
  65.         public String getAddress()
  66.         {
  67.                 return address;
  68.         }
  69.                         
  70.         public String getTelephone()
  71.         {
  72.                 return telephone;
  73.         }
  74.             }

  75. class EmployManager     
  76.         {
  77.         private static HashMap<String, Object> EmployeeListHT = new HashMap<String, Object>();
  78.                 //public Object getName(Object obj)
  79.                 //{
  80.                 //         obj= get(obj);
  81.                 //         return obj;
  82.                        
  83.                        
  84.                 //
  85.        




  86.         public  boolean putEmployee(String name ,Object obj)
  87.                 {
  88.                        
  89.                         EmployeeListHT.put( name,obj);
  90.                                 return true;       
  91.                 }

  92.         public void putEmployee(Employee employee, Employee employee2) {
  93.                 // TODO Auto-generated method stub
  94.                
  95.         }

  96.         public void putEmployee(Object object, Object object2) {
  97.                 // TODO Auto-generated method stub
  98.                
  99.         }

  100.                
  101.        

  102.         public static Employee getEmployee(String name )
  103.                 {       
  104.                         return(Employee) EmployeeListHT.get(name)        ;               
  105.                        
  106.                 }
  107.         }


  108. /*        public static boolean removeEmployee(String name)
  109.                 {
  110.                         EmployeeListHT.remove(name);
  111.                                 return true;
  112.                 }*/
  113.        

  114.        
  115. class CommandStage extends EmployManager
  116. {       
  117.         //public static void sop(Object obj)
  118.         //{System.out.println(obj);}

  119.         @SuppressWarnings("unchecked")
  120.         public static void main(String[] srgs)
  121.         {       
  122.        
  123.                 EmployManager em = new EmployManager();
  124.        
  125.                 em.putEmployee((Object)new Employee("刘一锋") ,(Object)new Employee('1',22,"22","2","22"));
  126.                
  127.                 System.out.println(getEmployee("刘一锋"));
  128.        
  129.                 //sop(toString());
  130.                 /* Set<Employee> keySet = (Set<Employee>) em.keySet();
  131.                  
  132.                  
  133.                 Iterator<Employee> it = keySet.iterator();
  134.                        
  135.                         while(it.hasNext())
  136.                         {
  137.                                 Employee emp =(Employee) it.next();
  138.                                
  139.                         }*/
  140.         }

  141.        
  142.                
  143.         }


  144.        
复制代码

作者: 林国锋    时间: 2011-10-11 19:31
请看你代码的105行, em.putEmployee((Object)new Employee("刘一锋") ,(Object)new Employee('1',22,"22","2","22"));这个方法什么都没有实现肯定是空的,这集合怎么写得有点乱?具体像要实现什么功能?是要在hashmap中存对象吗?
作者: 赵玉成    时间: 2011-10-11 19:46
你的 HashMap   EmployeeListHT里没有加入任何值,在EmployManager 类中加一方法:
public static HashMap<String, Object> getmap()
        {
               
               
                return  EmployeeListHT;
        }

然后在main方法中System.out.println(em.getmap());
打印EmployeeListHT值为空{}

作者: 刘一锋    时间: 2011-10-11 19:52
愁思我了,eclipse帮助的时候加了一些我看不懂的东西
作者: 刘一锋    时间: 2011-10-11 20:04
  1. import java.util.*;
  2. class Employee
  3.         {         private String name;
  4.                 private char sex;
  5.                 private int birthday;
  6.                 private String degree;
  7.                 private String title;
  8.                 private String address;
  9.                 private String telephone;

  10.        
  11.        
  12.         public Employee( char sex, int birthday, String degree, String title, String telephone)
  13.                 {       
  14.                         this.sex =sex;
  15.                         this.birthday =birthday;
  16.                         this.degree =degree;
  17.                         this.title =title;
  18.                         this.title =title;
  19.                         this.telephone=telephone;
  20.                         }
  21.         public Employee(String name)
  22.         {
  23.                 this.name =name;
  24.                
  25.         }
  26. public void setName(String name)
  27.                 {        this.name =name; }
  28.         public void setSex(char sex)
  29.                 {        this.sex =sex; }
  30.         public void setBirthday(int birthday)
  31.                 {this.birthday =birthday;        }
  32.         public void setDegree(String degree)
  33.                 {        this.degree =degree;}
  34.         public void setTitle(String title)
  35.                 {        this.title =title;}
  36.         public void setAddress(String address, String title)
  37.                 {        this.title =title;}
  38.         public void setTelephone(String telephone)
  39.                 {        this.telephone=telephone;}
  40.                
  41.         public String getName()
  42.         {
  43.                 return name;
  44.         }
  45.                            
  46.         public char getSex()
  47.         {
  48.                 return sex;
  49.         }
  50.                          
  51.         public int getBirthday()
  52.         {
  53.                 return birthday;
  54.         }
  55.         public String getDegree()
  56.         {
  57.                 return degree;
  58.         }
  59.                         
  60.         public String getTitle()
  61.         {
  62.                 return title;
  63.         }
  64.                         
  65.         public String getAddress()
  66.         {
  67.                 return address;
  68.         }
  69.                         
  70.         public String getTelephone()
  71.         {
  72.                 return telephone;
  73.         }
  74.             }

  75. class EmployManager     
  76.         {
  77.         private static HashMap<String, Object> EmployeeListHT = new HashMap<String, Object>();
  78.                
  79.         public  boolean putEmployee(String name ,Object obj)
  80.                 {
  81.                        
  82.                         EmployeeListHT.put( name, obj);
  83.                                 return true;       
  84.                 }


  85.         public static Employee getEmployee(String name )
  86.                 {       
  87.                         return(Employee) EmployeeListHT.get(name)        ;               
  88.                        
  89.                 }


  90.         public void putEmployee(Employee employee, Object object) {
  91.                 // TODO Auto-generated method stub
  92.                
  93.         }
  94.         }


  95. /*        public static boolean removeEmployee(String name)
  96.                 {
  97.                         EmployeeListHT.remove(name);
  98.                                 return true;
  99.                 }*/
  100.        

  101.        
  102. class CommandStage extends EmployManager
  103. {
  104.         @SuppressWarnings("unchecked")
  105.         public static void main(String[] srgs)
  106.         {       
  107.                 EmployManager em = new EmployManager();
  108.        
  109.                 em.putEmployee((Employee)new Employee("刘一锋") ,(Object)new Employee('1',22,"22","2","22"));
  110.                
  111.                 System.out.println(getEmployee("刘一锋"));
  112.        
  113.        
  114.        
  115.         }       
  116.         }


  117.        
复制代码
这样能看到过了吗?大家
作者: 刘一锋    时间: 2011-10-11 20:04
  1. import java.util.*;
  2. class Employee
  3.         {         private String name;
  4.                 private char sex;
  5.                 private int birthday;
  6.                 private String degree;
  7.                 private String title;
  8.                 private String address;
  9.                 private String telephone;

  10.        
  11.        
  12.         public Employee( char sex, int birthday, String degree, String title, String telephone)
  13.                 {       
  14.                         this.sex =sex;
  15.                         this.birthday =birthday;
  16.                         this.degree =degree;
  17.                         this.title =title;
  18.                         this.title =title;
  19.                         this.telephone=telephone;
  20.                         }
  21.         public Employee(String name)
  22.         {
  23.                 this.name =name;
  24.                
  25.         }
  26. public void setName(String name)
  27.                 {        this.name =name; }
  28.         public void setSex(char sex)
  29.                 {        this.sex =sex; }
  30.         public void setBirthday(int birthday)
  31.                 {this.birthday =birthday;        }
  32.         public void setDegree(String degree)
  33.                 {        this.degree =degree;}
  34.         public void setTitle(String title)
  35.                 {        this.title =title;}
  36.         public void setAddress(String address, String title)
  37.                 {        this.title =title;}
  38.         public void setTelephone(String telephone)
  39.                 {        this.telephone=telephone;}
  40.                
  41.         public String getName()
  42.         {
  43.                 return name;
  44.         }
  45.                            
  46.         public char getSex()
  47.         {
  48.                 return sex;
  49.         }
  50.                          
  51.         public int getBirthday()
  52.         {
  53.                 return birthday;
  54.         }
  55.         public String getDegree()
  56.         {
  57.                 return degree;
  58.         }
  59.                         
  60.         public String getTitle()
  61.         {
  62.                 return title;
  63.         }
  64.                         
  65.         public String getAddress()
  66.         {
  67.                 return address;
  68.         }
  69.                         
  70.         public String getTelephone()
  71.         {
  72.                 return telephone;
  73.         }
  74.             }

  75. class EmployManager     
  76.         {
  77.         private static HashMap<String, Object> EmployeeListHT = new HashMap<String, Object>();
  78.                
  79.         public  boolean putEmployee(String name ,Object obj)
  80.                 {
  81.                        
  82.                         EmployeeListHT.put( name, obj);
  83.                                 return true;       
  84.                 }


  85.         public static Employee getEmployee(String name )
  86.                 {       
  87.                         return(Employee) EmployeeListHT.get(name)        ;               
  88.                        
  89.                 }


  90.         public void putEmployee(Employee employee, Object object) {
  91.                 // TODO Auto-generated method stub
  92.                
  93.         }
  94.         }


  95. /*        public static boolean removeEmployee(String name)
  96.                 {
  97.                         EmployeeListHT.remove(name);
  98.                                 return true;
  99.                 }*/
  100.        

  101.        
  102. class CommandStage extends EmployManager
  103. {
  104.         @SuppressWarnings("unchecked")
  105.         public static void main(String[] srgs)
  106.         {       
  107.                 EmployManager em = new EmployManager();
  108.        
  109.                 em.putEmployee((Employee)new Employee("刘一锋") ,(Object)new Employee('1',22,"22","2","22"));
  110.                
  111.                 System.out.println(getEmployee("刘一锋"));
  112.        
  113.        
  114.        
  115.         }       
  116.         }


  117.        
复制代码
这样能看到过了吗?大家
作者: 刘一锋    时间: 2011-10-11 20:08
        em.putEmployee((Employee)new Employee("刘一锋") ,(Object)new Employee('1',22,"22","2","22"));   


这句话怎么就没存进数据呢?
作者: 伍碧林    时间: 2011-10-11 20:28
本帖最后由 伍碧林 于 2011-10-11 20:39 编辑

啊,这么多回复了啊...我没有去打球还是给你看了下,自己辛苦了下,还是把代码贴进来.修改的地方,注释中写了....{:soso_e100:}
结果:
刘一锋
性别:男 生日:22 学位 :22 标题:2 地址:100 电话:22(乱写的数据)
  1. import java.util.*;

  2. class Employee {
  3.         private String name;
  4.         private char sex;
  5.         private int birthday;
  6.         private String degree;
  7.         private String title;
  8.         private String address;
  9.         private String telephone;
  10.         public Employee(char sex, int birthday, String degree, String title,String address,//改了
  11.                         String telephone) {
  12.                 this.sex = sex;
  13.                 this.birthday = birthday;
  14.                 this.degree = degree;
  15.                 this.title = title;
  16.                 this.address = address;
  17.                 this.telephone = telephone;
  18.         }
  19.         public Employee(String name)
  20.         {
  21.                 this.name = name;
  22.         }
  23.         public void setName(String name)
  24.         {
  25.                 this.name = name;
  26.         }
  27.         public void setSex(char sex)
  28.         {
  29.                 this.sex = sex;
  30.         }
  31.         public void setBirthday(int birthday) {
  32.                 this.birthday = birthday;
  33.         }
  34.         public void setDegree(String degree)
  35.         {
  36.                 this.degree = degree;
  37.         }
  38.         public void setTitle(String title)
  39.         {
  40.                 this.title = title;
  41.         }
  42.         public void setAddress(String address, String title)
  43.         {
  44.                 this.title = title;
  45.         }
  46.         public void setTelephone(String telephone)
  47.         {
  48.                 this.telephone = telephone;
  49.         }
  50.         public String getName()
  51.         {
  52.                 return name;
  53.         }
  54.         public char getSex()
  55.         {
  56.                 return sex;
  57.         }
  58.         public int getBirthday()
  59.         {
  60.                 return birthday;
  61.         }
  62.         public String getDegree()
  63.         {
  64.                 return degree;
  65.         }
  66.         public String getTitle()
  67.         {
  68.                 return title;
  69.         }
  70.         public String getAddress()
  71.         {
  72.                 return address;
  73.         }
  74.         public String getTelephone()
  75.         {
  76.                 return telephone;
  77.         }
  78.         //添加了
  79.     public String toString(){
  80.             return "性别:"+this.sex+" 生日:"+this.birthday+" 学位 :"+this.degree
  81.             +" 标题:"+this.title+" 地址:"+this.address+ " 电话:"+this.telephone;
  82.            
  83.     }
  84. }
  85. class EmployManager
  86. {
  87.         private static  HashMap<String, Object> EmployeeListHT = new HashMap<String, Object>();

  88.         // public Object getName(Object obj)

  89.         // {

  90.         // obj= get(obj);

  91.         // return obj;
  92.         //
  93.         public boolean  putEmployee(String name, Object obj)//
  94.         {
  95.                 EmployeeListHT.put(name, obj);
  96.                 return true;
  97.         }
  98.         public void putEmployee(Employee employee, Employee employee2) {
  99.                 // TODO Auto-generated method stub
  100.         }
  101.         public void putEmployee(Object object, Object object2) {
  102.                 // TODO Auto-generated method stub
  103.                
  104.         }
  105.                 public static Employee getEmployee(String name)
  106.         {
  107.                 return (Employee) EmployeeListHT.get(name);
  108.         }
  109.   //自动生成的代码
  110. //EmployeeListHT这个属性的get()和set()方法,因为后面用到了em.getEmployeeListHT(),因为你的EmployeeListHT 是private的,需要get()和set(),也只有它才是真正存数据的HashMap.
  111.    public void setEmployeeListHT(HashMap<String, Object> employeeListHT) {
  112.                         EmployeeListHT = employeeListHT;
  113.                 }
  114.                 public HashMap<String, Object> getEmployeeListHT() {
  115.                         return EmployeeListHT;
  116.                 }
  117. }

  118. /*
  119. * public static boolean removeEmployee(String name)
  120. *
  121. * {
  122. *
  123. * EmployeeListHT.remove(name);
  124. *
  125. * return true;
  126. *
  127. * }
  128. */

  129. public class temp extends  EmployManager

  130. {
  131.         // public static void sop(Object obj)
  132.         // {System.out.println(obj);}
  133.         @SuppressWarnings("unchecked")
  134.         public static void main(String[] srgs)
  135.         {
  136.                 EmployManager em = new EmployManager();
  137. //                em.putEmployee((Object) new Employee("刘一锋"), (Object) new Employee('1',
  138. //                                22, "22", "2", "22"));
  139.                 //这里改了.根据你的意思.是通过"刘一锋"找他的信息
  140.                 //你用的putEmployee(Object object ,Object object2)这个方法,但是你方法体为空.所以就给你改成了
  141.                 //public boolean  putEmployee(String name, Object obj)因为你有方法体
  142.                 em.putEmployee(new String("刘一锋"), (Employee) new Employee('男',
  143.                                 22, "22", "2","100", "22"));
  144.                 //你后面代码大概是这个意思...
  145.             Set<Map.Entry<String, Object>> itor =em.getEmployeeListHT().entrySet();
  146.                Iterator<Map.Entry<String, Object>> iter=itor.iterator();
  147.             while(iter.hasNext()){
  148.                     Map.Entry<String, Object> me = iter.next();
  149.                     System.out.println(me.getKey());
  150.                     System.out.println(me.getValue());                 
  151.             }
  152.                 // sop(toString());
  153.         }
  154. }
复制代码

作者: 伍碧林    时间: 2011-10-11 20:34
本帖最后由 伍碧林 于 2011-10-11 20:35 编辑
刘一锋 发表于 2011-10-11 20:08
em.putEmployee((Employee)new Employee("刘一锋") ,(Object)new Employee('1',22,"22","2","22"));   


根据你的参数你调用的是
public void putEmployee(Employee employee, Object object)
      {
                // TODO Auto-generated method stub
       }
这个方法,但是你方法体是空的啊.:)     
你的只有下面这个方法有hashMap的put方法,只有这个方法才可以往hashMap里面加<key,value>啊
才不会空啊
public  boolean putEmployee(String name ,Object obj)
        {
              EmployeeListHT.put( name, obj);
              return true;        
        }
作者: 刘一锋    时间: 2011-10-11 21:21
我感觉楼上是神,等我仔细看一下
作者: 刘一锋    时间: 2011-10-11 21:33
伍碧林 犀利啊,我就是这个意思,一开始我写的时候已经写了public boolean  putEmployee(String name, Object obj)//

        {

                EmployeeListHT.put(name, obj);

                return true;

是有方法体的,但是可能是我类型转换那块弄得不好,在用软件瞎调试的时候,不知道他为啥给我加了个没方法体的函数,我还没看出来,楼上的代码改的我差不多都能懂,就是迭代那块有模糊,我在研究一下,呵呵,谢谢你了,我要是管理肯定给你加分啊,真的感谢!
作者: 伍碧林    时间: 2011-10-11 23:06
本帖最后由 伍碧林 于 2011-10-11 23:08 编辑
刘一锋 发表于 2011-10-11 21:33
伍碧林 犀利啊,我就是这个意思,一开始我写的时候已经写了public boolean  putEmployee(String name, Obje ...


赫赫.过奖啦.我也是新手呢.说到了HashMap的迭代,我去看文档,然后小小的总结了下.自己复习了.希望也可以帮到你哈...
HashMap集合下的public Set<Map,Entry<K,V>> entrySet(); HashMap->Set(方式一)
或者
HashMap集合下的public Set<K> keySet() ;Hash->Set (方式二)
Set集合下的public Iterator<E> iterator()方法;  Set->iterator
Iterator接口下public boolean hasNext() ,public E next(),public void remove() ;可以迭代输出了,方式一效率比方式二效率高
作者: 刘一锋    时间: 2011-10-11 23:24
这两种方式是不是可以记下来,到时候往里套就ok了,一会我也复习一下,看的太快不扎实啊!共勉!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2