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

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

EnumSet.copyOf 空集合拋出 IllegalArgumentException

EnumSet.copyOf 空集合拋出 IllegalArgumentException

青春有我 2022-11-02 10:43:08
我有以下代碼失敗并出現(xiàn) IllegalArgumentExceptionpublic EnumSet<test> getData(){  // Line 1   return EnumSet.copyOf(get(test))) // Line 2}private Collection<Test> get(Test[] test){  //Line 1 test= test==null ? new Test[0] : test;     // line 2 return Array.asList(test) //Line 3}如果 test 為 null ,則get函數(shù)的第 2 行創(chuàng)建空的 Test 數(shù)組和EnumSet.copyOf(get(test)) throws IllegalArgumentException我不明白為什么會拋出這個異常?
查看完整描述

1 回答

?
慕少森

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

AnEnumSet使用一些反射來識別其元素的類型。(該集合使用值的“序數(shù)”enum跟蹤是否包含每個元素。)

當您創(chuàng)建一個EnumSetwith 時copyOf(Collection),它會檢查該集合是否是一個EnumSet. 如果是,它使用與源集相同的類型。否則,它會嘗試調(diào)用getClass()源集合中的第一個元素。如果集合為空,則沒有第一個元素,也沒有任何可查詢的類。所以在這種情況下它會失敗(“IllegalArgumentException如果c不是EnumSet實例并且不包含元素則拋出”)。

要創(chuàng)建一個空的EnumSet,您需要自己確定類,并使用noneOf().

Collection<Test> tests = get(test);
return tests.isEmpty() ? EnumSet.noneOf(Test.class) : EnumSet.copyOf(tests);


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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