[英]How to Access local variable of the method from one class to another
public void processVmCreate(SimEvent ev) {
int[] data = (int[]) ev.getData();
int datacenterId = data[0];
int vmId = data[1];
int result = data[2];
}
我想在另一個包中的另一個類中訪問方法processVmCreate(SimEvent ev)
的局部變量。 我怎么才能訪問?
方法執行完成后,局部變量死亡。
如果您想在其他方法中使用它們,您的選擇是:
1)傳遞給那個方法,假設你在這里調用那個方法(你說它的實例可能是或在同一個類方法中 )。
2)創建靜態變量並在此處分配,以便在那里使用。 但請確保在使用之前調用此方法。 但我更喜歡第一個。 除非您沒有選擇靜態。
要從其他課程中獲得結果,您可以:
1 - 將它們聲明為全局屬性,並通過它們的getter訪問它們,如下所示:
public class YourClass {
int datacenterId = -1;
int vmId = -1;
int result = -1;
public void processVmCreate(SimEvent ev) {
int[] data = (int[]) ev.getData();
datacenterId = data[0];
vmId = data[1];
result = data[2];
}
public int getDatacenterId() {
return datacenterId;
}
public int getVmId() {
return vmId;
}
public int getResult() {
return result;
}
}
2-或者你可以像這樣轉換你的方法並讓它返回一個hashMap:
public HashMap<String, Integer> processVmCreate(SimEvent ev) {
int[] data = (int[]) ev.getData();
HashMap<String, Integer> map = new HashMap<>() ;
map.put("datacenterId", data[0]) ;
map.put("vmId", data[1]) ;
map.put("result", data[2]) ;
return map ;
}
從另一個班級,您可以訪問您的attributs,如下所示:
public class AnotherClass {
//other code
public void anotherMethod(){
YourClass yourClass = new YourClass() ;
int datacenterId = yourClass.processVmCreate(simEvent).get("datacenterId") ;
int vmId yourClass.processVmCreate(simEvent).get("vmId") ;
int result yourClass.processVmCreate(simEvent).get("result") ;
}
}
除非,您無法從另一個類訪問本地變量, 因為它們是本地的
您可以將變量設置為全局變量,但將訪問權限更改為private,然后使其getter和setter方法在其他類中訪問它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.