簡體   English   中英

Java - 使用變量引用對象

[英]Java - Referencing an object with a variable

我試圖從 if 語句中實例化一個對象,基本上是用戶想要創建一個對象時的對象。 如果正在執行相同的代碼(使用不同的參數),那么對對象的引用將是相同的,所以......

您能否從不同的變量中引用該對象,例如在該對象的構造函數中創建的唯一 ID?

    Test test1 = null;
    if (run == true){
       test1 = new Test(argument1);
       test1 = test1.id;
       }

我沒有經驗,但基本上想要一個來自對象的變量然后指向該對象,所以當一個新對象從再次執行的代碼實例化時它不會被覆蓋。

謝謝

我覺得您對 Java 中通常不會發生的場景進行了過度補償。

直接回答這個問題:除非您有一個數據結構(如Map<Integer, Test> )跟蹤這些實例Map<Integer, Test>否則您以后將無法使用對象的 ID 來引用該對象。

在您說明的場景中, test1不為null的唯一方法是您的測試條件是否通過。 除此之外,它有可能為null並在以后導致運行時問題。 此外,如果test1.id不是Test的實例,則重新分配給test1將失敗。

您不能在 Java 中動態命名變量。 我可以建議創建一個Test變量List嗎? 每次循環執行時,將變量添加到List 這樣您就可以引用所有已創建的對象。

創建新實例時不會覆蓋該實例,只會覆蓋您對該對象的引用。 如果要管理對象的多個實例,則必須跟蹤對它們的引用。 您可以在構建函數中保留一組對象引用或一組對象引用。 或者,您可以將對象引用返回給調用者並在那里跟蹤它。

你可能想在這里使用類似數組的東西

int count = 0;
    Test[] tests = new Test[10];

    if(run == true){
        tests[count] = new Solution(argument1);
        count++;
    }

在這種情況下,我們為 10 個對象制作插槽,實際上任何數字都可以放入 10 所在的位置。 如果您不確定需要制作多少個對象,使用 ArrayList 之類的東西也可能是個好主意。

要從數組中獲取元素並使用對象,我們可以簡單地使用數組的名稱,后跟數組中它所在的位置。

tests[0].someMethod() //will call the method on the object at index 0

記住數組從零開始計數,所以如果你想要第二個元素,你必須要求索引 1 處的元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM