Я написал следующий код и был удивлен, увидев результат:
Integer a = 211;
int b = 211;
int[] array = {210,211,212};
System.out.println(Arrays.asList(array).contains(a));
System.out.println(Arrays.asList(array).contains(b));
Выход:
false
false
Я нашел этот вопрос и некоторые другие вопросы, связанные с ним и узнал, что метод asList
не загружает Autobox. Я проверил возвращенный тип в предварительном просмотре eclipse javadoc:
Я не мог понять этот тип возврата. int[]
- это объект, а не примитив, так что все в порядке. Я уверен, что не получу List<Integer>
(что-то, чего я ожидал), но я не уверен, как использовать возвращаемую вещь. Мои вопросы:
- 1. How exactly do I expect that list methods will work when I'm expecting an List of Integer and getting a List of int[] ?
- 2. In case of Strings the return type is List of String and not List of String[]. What sort of implementation differences are there?
- 3. What good is this method for primitives if things are so uncertain?