第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在已編譯的Java類中保留參數(shù)/參數(shù)名稱

在已編譯的Java類中保留參數(shù)/參數(shù)名稱

侃侃爾雅 2019-11-30 11:23:10
當(dāng)我編譯這樣的東西:public class MyClass{    void myMethod(String name, String options, String query, String comment)    {        ...    }}并將其編譯為類文件,則似乎丟失了參數(shù)名稱。也就是說(shuō),當(dāng)其他一些Java代碼引用MyClass并想要調(diào)用或覆蓋時(shí)myMethod,我的IDE(當(dāng)前為Eclipse)似乎從類文件中獲得了此方法簽名:void myMethod(String arg0, String arg1, String arg2, String arg3);我知道Eclipse(可能還有其他IDE)允許我提供指向源或javadoc (如Bishiboosh所指出的)的鏈接,MyClass并且可以利用這一點(diǎn)。但是我很好奇是否有某種方法javac可以將名稱包括在類文件中,以便該類的用戶即使只有類文件也能看到參數(shù)名稱。課程解決方案當(dāng)我使用編譯類時(shí)java -g:vars,參數(shù)名稱包含在類文件中。-g:vars似乎等效于Eclipse->項(xiàng)目屬性-> Java編譯器->將變量屬性添加到生成的類文件中。該解決方案是由幾位作者提出的,但是尼克的回答終于使我相信了。在我的機(jī)器上,Eclipse有時(shí)使用了此信息,有時(shí)卻沒有使用,這可能是我的錯(cuò)或Eclipse中的錯(cuò)誤,但不是類文件或編譯問題。無(wú)論如何,現(xiàn)在我知道該信息肯定存在。但是沒有接口的解決方案盡管這對(duì)類適用(有點(diǎn)),但不適用于接口。對(duì)我來(lái)說(shuō),邏輯上的原因似乎是-g:vars僅提供了局部變量的名稱,這也是javac的文檔所指出的。在方法的主體中,它的參數(shù)與局部變量非常相似,因此它們由-g:vars覆蓋。接口方法沒有主體,因此它們不能具有局部變量。我最初的問題只是要求上課,因?yàn)槲也恢揽赡苡惺裁磪^(qū)別。類文件格式正如gid所指出的那樣,類文件格式不支持參數(shù)名稱的存儲(chǔ)。我在類文件規(guī)范中找到了一個(gè)描述數(shù)據(jù)結(jié)構(gòu)的部分,該數(shù)據(jù)結(jié)構(gòu)應(yīng)該與方法的參數(shù)名稱相同,但是在編譯接口時(shí)絕對(duì)不使用此結(jié)構(gòu)。編譯類時(shí),我無(wú)法確定是否使用了上述數(shù)據(jù)結(jié)構(gòu),或者Eclipse是否通過(guò)方法體內(nèi)的參數(shù)使用來(lái)推斷參數(shù)名稱。專家可以澄清這一點(diǎn),但是我認(rèn)為這并不重要。
查看完整描述

3 回答

?
浮云間

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超4個(gè)贊

無(wú)論使用什么javac選項(xiàng),類文件數(shù)據(jù)結(jié)構(gòu)都不支持將參數(shù)名稱存儲(chǔ)到任何方法。


為了在IDE中查看原始名稱,您必須為它們提供javadoc或源代碼。


如果您特別需要在運(yùn)行時(shí)使用它們,則可以在參數(shù)中添加注釋,但是由于沒有可使用的標(biāo)準(zhǔn)集,因此您必須創(chuàng)建自己的注釋。


對(duì)不起,沒有什么幫助


編輯:我完全糾正...類文件格式顯然有足夠的空間用于命名參數(shù)(JLS 4.7)


我看不到的是,你怎么能用它們來(lái)對(duì)付他們 java.lang.reflect.*


查看完整回答
反對(duì) 回復(fù) 2019-11-30
  • 3 回答
  • 0 關(guān)注
  • 995 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)