黑马程序员技术交流社区

标题: 范型报错 [打印本页]

作者: 桃花龙    时间: 2014-2-18 09:53
标题: 范型报错
本帖最后由 何伟超 于 2014-2-18 10:31 编辑

import java.util.*;
class students implements Comparable//定义students类
{
  private String name;
  private int age;
  private String por;
  students (String name,int age,String por)
{
  this.name = name;
  this.age = age;
  this.por = por;
}
public String getname()
{
  return name;
}
public int getage()
{
  return age;
}
public String getpor()
{
  return por;
}
}

class setmap
{
public static void main(String[] args) //主函数
{
  
  ArrayList st =new ArrayList();
  st.add(new students("lishi1",22,"sum"));
  st.add(new students("lishi2",21,"pub"));
  st.add(new students("lishi3",12,"sum"));
  st.add(new students("lishi4",32,"eng"));
  itera(st);调用迭代器函数。
  
  
}
public static <students> void itera(ArrayList<students> ar)//迭代器函数
{
  Iterator<students> it = ar.iterator();
  
  while(it.hasNext())
  {
   students ss = it.next();
   System.out.println(ss.getname());//问题。这里的SS老报错,显示ss为obj类没有getname()方法!!!!
                                                          setmap.java:83: 找不到符号
                                                            符号: 方法 getname()
                                                                 位置: 类 java.lang.Object
                                                                                         System.out.println(ss.getname());
   
  }
}
}




作者: 张东健    时间: 2014-2-18 10:37
类名大写,测试类公共,弄好规范,不然看起来很别扭的
作者: 张东健    时间: 2014-2-18 10:51
package com.itheima;

import java.util.*;
class Students //定义students类
{
  private String name;
  private int age;
  private String por;
  Students (String name,int age,String por)
{
  this.name = name;
  this.age = age;
  this.por = por;
}
public String getname()
{
  return this.name;
}
public int getage()
{
  return this.age;
}
public String getpor()
{
  return this.por;
}

}

public class Setmap
{
public static void main(String[] args){
  
  ArrayList st =new ArrayList();
  st.add(new Students("lishi1",22,"sum"));
  st.add(new Students("lishi2",21,"pub"));
  st.add(new Students("lishi3",12,"sum"));
  st.add(new Students("lishi4",32,"eng"));
  itera(st);//调用迭代器函数。
  
  
}
public static void itera(ArrayList<Students> ar)//迭代器函数
{
  Iterator<Students> it = ar.iterator();
  
  while(it.hasNext())
  {
   Students ss = it.next();
   System.out.println(ss.getname());
   System.out.println(ss.getage());

  }
}
}


作者: 张东健    时间: 2014-2-18 10:53
没做大的改动。在你基础上改了下,只单纯迭代无需实现接口,set get方法按规范写吧,最好都有,也不要少this
作者: 桃花龙    时间: 2014-2-18 11:34
张东健 发表于 2014-2-18 10:53
没做大的改动。在你基础上改了下,只单纯迭代无需实现接口,set get方法按规范写吧,最好都有,也不要少thi ...

谢谢大神指点。对照终于找出了错误点。以后慢慢习惯就好了新手上课看的住记不住,呵呵。




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