首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

还是JAVA强制转型的有关问题!请教这条语句的作用是什么?将对象具体化么

2012-04-26 
还是JAVA强制转型的问题!请问这条语句的作用是什么?将对象具体化么?返回的是一个Object类型。加上类名,将之

还是JAVA强制转型的问题!请问这条语句的作用是什么?将对象具体化么?
返回的是一个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类型。

热点排行