Removing a character from an ArrayList of characters

Yar :

I am facing with this unwanted char to int conversion in a loop. Say I have this List of Characters and I want to remove one of those:

List<Character> chars = new ArrayList<>();
chars.add('a');
chars.add('b');
chars.add('c');
chars.remove('a');  // or chars.remove('a'-'0');

so 'a' is interpreted as its int value and I'm getting an IndexOutOfBoundsException exception. Is there any easy workaround for this?

Mureinik :

A char is promoted to an int, which takes precedence over autoboxing, so remove(int) is called instead of remove(Object) you may have intuitively expect.

You can force the "right" method to be called by boxing the argument yourself:

chars.remove(Character.valueOf('a'));

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=449185&siteId=1