ループ内でのこの不要な変換char
に直面しています。次の文字リストがあり、そのうちの 1 つを削除したいとします。int
List<Character> chars = new ArrayList<>();
chars.add('a');
chars.add('b');
chars.add('c');
chars.remove('a'); // or chars.remove('a'-'0');
'a'
は値として解釈され、例外int
が発生しますIndexOutOfBoundsException
。これに対する簡単な回避策はありますか?
ベストアンサー1
Achar
は に昇格されint
、オートボクシングよりも優先されるので、remove(int)
の代わりに呼ばれるremove(Object)
直感的に予想できたかもしれません。
引数を自分でボックス化することで、「正しい」メソッドを強制的に呼び出すことができます。
chars.remove(Character.valueOf('a'));