返回的是一个Object类型。加上类名,将之具体化么?
比如 Name n = (Name)i.next();
Name是一个自定义的类名 , i.next()返回的是一个Object或者说是泛型。请问这个的作用是什么?
具体化么?
- Java code
import java.util.*;public class IteratorTest{ public static void main(String[] args){ Collection c = new HashSet();// Collection c = new HashSet(); c.add(new Name("f1","l1")); c.add(new Name("f2","l2")); c.add(new Name("f3","l3")); //System.out.println(c); Iterator i = c.iterator(); if(i.hasNext()){ Name n = (Name)i.next(); // 谁能帮我解释下这个语句的作用 System.out.println(n.getFname() + " "); } for(Iterator l = c.iterator();l.hasNext();){ Name n = (Name)l.next(); // 谁能帮我解释下这个语句的作用 if(n.getLname() == "l2"){ l.remove(); } } System.out.println(c); } static class Name{ private String fname; private String lname; public Name(String fname,String lname){ this.fname = fname; this.lname = lname; } public String getFname(){ return fname; } public String getLname(){ return lname; } public String toString(){ return fname +" " + lname; } } }
------解决方案--------------------
调用it.next()方法返回的是object类型的对象,object的对象根本没有getLname()的方法,只有name类对应的对象才有,如果你希望得到getLname()方法返回的参数,自然需要把对象先转化为name类型。