当前位置: 代码迷 >> J2SE >> 还是JAVA强制转型的有关问题!请教这条语句的作用是什么?将对象具体化么
  详细解决方案

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

热度:80   发布时间:2016-04-24 01:28:14.0
还是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类型。
  相关解决方案