亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

java 的 setColor 導致非法參數異?;驍嘌员惶^

java 的 setColor 導致非法參數異常或斷言被跳過

長風秋雁 2022-09-07 15:25:58
我有這個代碼(在繼承自的類中調用)。paintComponentJPanel    assert(red >= 0);    assert(red <= 255);    assert(green >= 0);    assert(green <= 255);    assert(blue >= 0);    assert(blue <= 255);    Color color = new Color(red, green, blue);一段時間后,我得到一個例外:Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Color parameter outside of expected range: Red    at java.awt.Color.testColorValueRange(Unknown Source)    at java.awt.Color.<init>(Unknown Source)    at java.awt.Color.<init>(Unknown Source)    at display.DrawCanvas.drawLed(DrawCanvas.java:55)    at display.DrawCanvas.paintComponent(DrawCanvas.java:36)    at javax.swing.JComponent.paint(Unknown Source)DrawCanvas.java:55(第 55 行)是上面代碼片段中的最后一行。當所有值都介于 0 和 255(包括)之間時,參數怎么可能超出范圍?
查看完整描述

1 回答

?
慕絲7291255

TA貢獻1859條經驗 獲得超6個贊

默認情況下不啟用 Java 斷言。

  • 從命令行中,傳遞命令行標志以啟用斷言。-ea

    java -ea your.main.ClassHere
  • 從 Eclipse 中,您必須轉到特定的運行配置并添加“VM 參數”,如此處所述。-ea

  • 來自IntelliJ,這是相似的。在特定的運行配置中,添加“VM 選項”。-ea

無論您的 IDE 如何,目標都是讓它在主類名之后和之前添加,以啟用斷言。-eajava

一旦您啟用了斷言,那么在您獲得 .AssertionErrorIllegalArgumentException

此特定情況將起作用,因為您已在注釋中指出該值是-- .請注意,如果您碰巧有值,則它們可能會傳遞具有大于和小于或等于 的無效值的斷言。int267float1.0f255.0f


查看完整回答
反對 回復 2022-09-07
  • 1 回答
  • 0 關注
  • 229 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號