作者icools (我的MSN上上下下...)
看板java
標題[問題] 如何透過Reflection去得變數自己的名稱
時間Tue Dec 17 18:43:35 2013
我想請問是否能透過Reflection的方式變數自己的定義名稱
譬如
String mCount = new String() ;
是否可以透過 mCount.getClass() 的方式去取得 "mCount"這個名稱 ?
想請問是否有可能呢 ? 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.251.38.1
1F:→ Chikei:local variable不能,class field可以 12/17 19:01
2F:推 LaPass:同一樓 12/17 20:02
3F:推 darkk6:class field 可以嗎@@ ? reflect 應該只能列舉吧 ? 12/17 22:05
4F:推 darkk6:應該不能用 "自己" 取得自己的變數名稱吧? 12/17 22:12
5F:→ Chikei:oops,沒看清楚是自己的名稱,那就是都不能。 12/17 22:15
6F:→ danny8376:到比較想問為何會想取變數名稱? 12/17 22:52
7F:→ swpoker:不可能讓你碰到參考的東西 12/18 09:56
8F:推 LaPass:debug 嗎? 例如輸出 mCount的值有誤 這樣? 12/18 10:34
9F:→ icools:因為我寫Android在不同的Activity傳遞參數需要透過Bundle 12/18 17:15
10F:→ icools:我想變數抓取自己的名稱去設定Bundle,避免set&get打錯字 12/18 17:59
11F:→ icools:看起來這方法是不行,感謝~~ 12/18 18:38
12F:→ sbrhsieh:就算可以你還是沒有解決會打錯字這個問題 12/18 20:08
13F:推 LaPass:你可以定義一個常數,然後傳值時用常數當key 12/18 21:31
14F:→ cyclone350:如果不能,那eclipse的debug mode是怎麼取到的? 12/18 22:52
15F:→ dream1124:那是用vm的debug模式, 再加上用 cglib 改bytecode吧~ 12/18 23:06
16F:推 wuliou:突然想到一個很蠢的方法 不知道行不行 12/19 00:40
17F:→ wuliou:故意讓他出錯 然後用catch抓起來看變數名稱XD 12/19 00:42
18F:→ Chikei:debug mode當然會帶debug info 12/19 18:13
19F:→ Chikei:但是那不在reflection API裡面,另外那些資訊在compile的時 12/19 18:15
20F:→ Chikei:候都是會根據選項被砍掉的 12/19 18:17
21F:推 DeathWatch:究竟要幹嘛的 12/19 21:33