簡體   English   中英

在其他 class 的方法中找到創建的 object

[英]Find object created inside a method in other class

例如2 class:工單和客戶

public class Ticket{
 private String cstName; 
public Ticket(String name){
   this.cstName = name; 
 }
}

public class Customer{
private String name;
public void book(){
Ticket t = new Ticket(t); 
}
}

我如何在其他地方找到並使用 t object???

你要求的是完全不可能的。 制作了一個object,將object賦值給一個局部變量,方法結束。

當方法結束時,所有局部變量(並且t是一個局部變量)立即 go 進入 bin 並且 java 中沒有任何東西可以讓你“插入”這個過程或者讓你停止這個過程。 變量剛剛消失。

object 仍在堆中某處,但無法再訪問。 最終它將被垃圾收集。 你也無能為力。 Java 沒有“列出堆中的所有對象”方法,而且永遠不會。

您可能會弄亂參考隊列,這是一個非常高級的主題,考慮到這個問題的陳述方式,它絕不適合,並且不適用於像這樣的任意方法。

如果您控制Ticket本身的代碼,您可以將引用保存為構造函數的一部分,這將是非常糟糕的設計,並且與t的概念或book方法制作它的概念完全無關。

您可能想要的是一個字段:

public class Customer {
  private String name;
  private Ticket ticket;

  public void book() {
    this.ticket = new Ticket(t); 
  }

  public Ticket getTicket() {
    return this.ticket;
  }
}

現在你可以這樣做:

Customer c = new Customer();
c.book();
Ticket t = c.getTicket();

或者也許做:

public class Customer {
  private String name;
  private Ticket ticket;

  public Ticket book() {
    this.ticket = new Ticket(t); 
    return this.ticket;
  }
}

現在你可以這樣做:

Customer c = new Customer();
Ticket t = c.book();

暫無
暫無

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

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