[英]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.