A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ztwztw 中级黑马   /  2014-1-4 10:07  /  1934 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class Text1 {
public static void main(String[] args){
     List<Person> list = new ArrayList<Person>();
        list.add(new Person("zhangsan",34));
        list.add(new Person("zhaan",36));
        list.add(new Person("zhadfan",24));
        list.add(new Person("zhang",56));
        Iterator<Person> it = list.iterator();
        while(it.hasNext()){
                //System.out.println((Person)it.next().getName);//为什么这么写不行啊
                Person p =it.next();
                System.out.println(p.getName()+"....."+p.getAge());
        }
       
}
}
class Person{
        private String name;
        private  int age;
        Person(String name,int age){
                this.name = name;
                this.age = age;
        }
        public  String getName(){
                return name;
        }
        public int getAge(){
                return age;
        }
}

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

4 个回复

倒序浏览
本帖最后由 几番意难相付 于 2014-1-4 12:01 编辑

怎么不行?getName是你定义的方法,调用的方法后要跟一对小括号,你的小括号呢?
//System.out.println((Person)it.next().getName);//为什么这么写不行啊
System.out.println(((Person)it.next()).getName());这样写再看看

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 其LovE斤 于 2014-1-4 10:54 编辑

//System.out.println((Person)it.next().getName);//为什么这么写不行啊
public  String getName()   注意你这个方法返回的是String
((Person)it.next().getName);  你这里是想将String 强转成Person
也刚注意到。。你那里也缺小括号,但是你加了小括号也肯定不行。类型无法转换的。

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
我的意思是想把it.next转换成person,怎么办啊
回复 使用道具 举报
((Person)it.next()).getName()
这样就可以.想做不是太明确作用范围的转换,调用,可以用小括号辅助确定作用范围.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马