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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么不通過實例調(diào)用靜態(tài)方法是Java編譯器的錯誤?

為什么不通過實例調(diào)用靜態(tài)方法是Java編譯器的錯誤?

回首憶惘然 2019-07-01 10:25:14
為什么不通過實例調(diào)用靜態(tài)方法是Java編譯器的錯誤?我相信你們都知道我的意思-代碼,比如:Thread thread = new Thread();int activeCount = thread.activeCount();引發(fā)編譯器警告。為什么這不是一個錯誤?編輯:要明確一點:問題與線程無關(guān)。我意識到,在討論這個問題時,經(jīng)常會給出線程示例,因為它們可能會使事情變得一團糟。但真正的問題是這樣的用法是總胡說八道,你不能(勝任)寫這樣的電話,而且是認真的。這類方法調(diào)用的任何示例都是barmy。這里還有一個:String hello = "hello";String number123AsString = hello.valueOf(123);這使得每個字符串實例似乎都帶有一個“Stringvalue(Inti)”方法。
查看完整描述

3 回答

?
Helenr

TA貢獻1780條經(jīng)驗 獲得超4個贊

為什么要犯錯誤呢?實例可以訪問所有靜態(tài)方法。靜態(tài)方法無法更改實例的狀態(tài)(試圖編譯錯誤)。

您給出的著名示例的問題非常具體螺紋,而不是靜態(tài)方法調(diào)用??瓷先ツ愫孟?/trans>activeCount()所引用的線程thread,但您確實得到了調(diào)用線程的計數(shù)。這是一個合乎邏輯的錯誤,你作為一個程序員正在犯。在這種情況下,發(fā)出警告是編譯器應(yīng)該做的事情。這取決于您是否注意到警告并修復(fù)您的代碼。

編輯:我意識到語言的語法是允許您可以編寫具有誤導性的代碼,但請記住,編譯器及其警告也是語言的一部分。該語言允許您做一些編譯器認為可疑的事情,但它給出了警告,以確保您意識到它可能會導致問題。


查看完整回答
反對 回復(fù) 2019-07-01
?
米琪卡哇伊

TA貢獻1998條經(jīng)驗 獲得超6個贊

他們不能再犯錯誤了,因為所有的代碼都已經(jīng)存在了。

我同意你的意見,這應(yīng)該是個錯誤。也許編譯器應(yīng)該有一個選項/概要文件來升級一些錯誤警告。

最新情況:當他們引進斷言關(guān)鍵字在1.4中,與舊代碼具有類似的潛在兼容性問題,他們制作了它只有在將源模式顯式設(shè)置為“1.4”時才可用..我想,在新的源模式“java 7”中,可能會出現(xiàn)錯誤。但我懷疑他們會這么做,因為這一切都會引起麻煩。正如其他人所指出的,嚴格來說,沒有必要阻止您編寫令人困惑的代碼。對Java語言的更改應(yīng)該限制在此時嚴格必要的范圍內(nèi)。


查看完整回答
反對 回復(fù) 2019-07-01
  • 3 回答
  • 0 關(guān)注
  • 535 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

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