我一直在研究这个tutorial下面的代码难倒了我:
public RequestQueue getRequestQueue() {
if (mRequestQueue == null) {
mRequestQueue = Volley.newRequestQueue(getApplicationContext());
}
return mRequestQueue;
}
public ImageLoader getImageLoader() {
getRequestQueue();
//getRequestQueue returns an object, but we dont have any variable to receive it.. how is this possible ?
if (mImageLoader == null) {
mImageLoader = new ImageLoader(this.mRequestQueue,
new LruBitmapCache());
}
return this.mImageLoader;
}
所以问题是 getRequestQueue 返回一个对象,但我们没有任何变量来接收它..这怎么可能?
示例:不应该是这样的:
RequestQueue x = getRequestQueue();
因此,当我们没有将 RequestQueue 返回的内容捕获到变量中时,我们如何处理它?</p>
最佳答案
getRequestQueue()
,与它的名字相反,它实际上是一个有副作用的方法。这就是为什么调用该方法并丢弃其返回值是有意义的。方法返回后,程序的状态将发生变化。
关于java - 令人困惑的java : a method calls another method which returns something,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26298949/