困扰多时的一个问题

来源:百度知道 编辑:UC知道 时间:2024/05/15 11:36:06
public synchronized Collection getItems(){return items.values();}
...
for(Iterator i=getItems().iterator();i.hasNext();){...}
为什么可以调用Iterator i=getItems().iterator()方法,是不是因为items.values()的原因,我想知道,什么情况下可以调用方法(而不是对象)的方法。谢谢,我是菜鸟。
ServletContext context=getServletContext();
Integer count=(Integer)context.getAttribute("count");
那我想问的是:这里的context是对象,调用了他的getAttribute方法,那我调用的时候可以把context换成getServletContext()嘛?我知道我这个问题可能很傻,最主要是上面getItems()这个对象让我看着很奇怪,有谁可以帮我理理思路嘛,谢谢!!!
-----------------
好像懂一点了,最后一个问题,这样意思也就是说getItems()方法只不过是一个傀儡,其实是起到传递的作用,更本就是没用的,是吗?

getItems() 返回的本来就是对象 Collection getItems() 这里的Collection 不就是返回对象类型吗 iterator() 是Collection 类型的方法

我帮你分解下你就明白了,这样写的目的只是为了减少代码,简洁而已

Collection coll = getItems();
Iterator i = coll.iterator();
这两句就是上面那句执行的命令分解

不是没起到作用,而是不用把返回的对象再赋给变量,这样可以直接调用, 这是一个操作链