2014-05-07 67 views
-1

對象我有這樣的方法,我通過一個新創建的對象爲如何訪問未存儲在變量

foo(new WebObject()); 

我如何獲得訪問WebObject的另一個目的是使用?換句話說,新創建的對象引用去哪裏?

+2

您需要對該對象的引用。 – Nishant

+0

如果它沒有存儲在一個變量中......你有點不幸。它會讓你的生活**變得更加容易**來爲它提供參考。 – Makoto

+1

該引用進入'foo()'方法。你要得到它的唯一方法是如果'foo()'將它存儲在某處,並且你可以訪問該變量。 – azurefrog

回答

1

將它存儲在一個變量!

WebObject whatever = new WebObject(); 
foo(whatever); 
bar(whatever); 
4

這取決於你的意思 - 但是如果你的意思是說,你以後要使用它,函數調用後,那麼你要像做

WebObject wObj = new WebObject(); 
foo (wObj); 
WebObject nObj = wObj; 

如果,你的意思是你要使用的對象,把foo(WebObject)方法中,那麼你需要做的是,在函數中,沿着東西的

foo (WebObject obj) 
{ 
    WebObject local = obj; 
} 
1

以線條爲user2357112貼,你可以更阿西GN新對象到一個局部變量,並通過一些方法

WebObject instance= new WebObject(); 
foo(instance); 
foo2(instance); 
System.out.println(instance); 

,但如果你正在尋找別的東西,你可以把它分配給支持類

public class WebObjectKeeper{ 
    private static WebObject instance=null; 

    public static void setWebObject(WebObject obj){ 
     this.instance=obj; 
    } 
    public static WebObject getWebObject(){ 
     return instance; 
    } 
} 

,然後你用它在傳遞代碼如:

public void myMethod(){ 
    WebObjectKeeper.setWebObjcet(new WebObject()); 
    foo(WebObjectKeeper.getWebObject()); 
    foo2(); 
} 
public void foo2(){ 
    WebObjectKeeper.getWebObject().executeThisMethod(); 
    System.out.println("Object = " + WebObjectKeeper.getWebObject()); 
}