黑马程序员技术交流社区
标题:
泛型问题
[打印本页]
作者:
ztwztw
时间:
2014-1-4 10:07
标题:
泛型问题
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;
}
}
作者:
几番意难相付
时间:
2014-1-4 10:29
本帖最后由 几番意难相付 于 2014-1-4 12:01 编辑
怎么不行?getName是你定义的方法,调用的方法后要跟一对小括号,你的小括号呢?
//System.out.println((Person)it.next().getName);//为什么这么写不行啊
System.out.println(((Person)it.next()).getName());这样写再看看
作者:
其LovE斤
时间:
2014-1-4 10:51
本帖最后由 其LovE斤 于 2014-1-4 10:54 编辑
//System.out.println((Person)it.next().getName);//为什么这么写不行啊
public String getName() 注意你这个方法返回的是String
((Person)it.next().getName); 你这里是想将String 强转成Person
也刚注意到。。你那里也缺小括号,但是你加了小括号也肯定不行。类型无法转换的。
作者:
ztwztw
时间:
2014-1-4 19:30
我的意思是想把it.next转换成person,怎么办啊
作者:
高亮亮
时间:
2014-1-4 19:37
((Person)it.next()).getName()
这样就可以.想做不是太明确作用范围的转换,调用,可以用小括号辅助确定作用范围.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2