長(zhǎng)風(fēng)秋雁
2022-09-07 15:25:58
我有這個(gè)代碼(在繼承自的類(lèi)中調(diào)用)。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);一段時(shí)間后,我得到一個(gè)例外: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 行)是上面代碼片段中的最后一行。當(dāng)所有值都介于 0 和 255(包括)之間時(shí),參數(shù)怎么可能超出范圍?
1 回答

慕絲7291255
TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊
默認(rèn)情況下不啟用 Java 斷言。
從命令行中,傳遞命令行標(biāo)志以啟用斷言。
-ea
java -ea your.main.ClassHere
從 Eclipse 中,您必須轉(zhuǎn)到特定的運(yùn)行配置并添加“VM 參數(shù)”,如此處所述。
-ea
來(lái)自IntelliJ,這是相似的。在特定的運(yùn)行配置中,添加“VM 選項(xiàng)”。
-ea
無(wú)論您的 IDE 如何,目標(biāo)都是讓它在主類(lèi)名之后和之前添加,以啟用斷言。-ea
java
一旦您啟用了斷言,那么在您獲得 .AssertionError
IllegalArgumentException
此特定情況將起作用,因?yàn)槟言谧⑨屩兄赋鲈撝凳?- .請(qǐng)注意,如果您碰巧有值,則它們可能會(huì)傳遞具有大于和小于或等于 的無(wú)效值的斷言。int
267
float
1.0f
255.0f
添加回答
舉報(bào)
0/150
提交
取消