[英]Accesing a reference variable from inside a method java
我希望將一個函數添加到程序中,在該程序中,我將使用靜態變量來創建驅動程序使用名稱的構造函數的所有時間的列表。 我需要知道的是,在java中,是否有一種方法可以訪問引用變量(作為字符串)並將其添加到列表中? 偽代碼:
public ClassName
String static list = "";
Public ClassName (parameters){
list += getReferenceVariable();
}
我要問的是getReferenceVariable,是否有人知道這樣做的方法
如果我對您的理解正確,那么您想保留所有構造函數被調用的時間列表,並保存當前正在創建的變量的名稱嗎? 因為在使用構造函數時“參考變量”為none,所以使用new MyClass()
而不是obj.MyClass()
調用構造函數。
但是,如果您只是想知道誰打了您(如堆棧跟蹤所示),則可以按照此線程中的描述 (無雙關語)簡單地使用Thread.currentThread().getStackTrace()
,然后選擇所需的堆棧框架(可能為2,因為數組中的第一個元素(索引0)是java.lang.Thread.getStackTrace方法,第二個元素(索引1)是構造函數,而2是調用構造函數的位置),您可以在其中獲取(例如)此堆棧跟蹤所對應的源文件的名稱。 getFileName()的文檔
由於我還沒有嘗試(目前無法使用),因此請謹慎使用以下代碼:
public class MyClass(){
MyClass(){
callerName = Thread.currentThread().getStackTrace()[2].getFileName();
... // anything here
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.