Не можете найти символ ошибки Java?

Код работает, когда я использовал java.util.Arrays.sort(numbers);Я делаю что-то неправильно? Это кажется странным для меня.

import java.util.Arrays.*;

class Test {
   public static void main(String[] args) {
    double[] numbers = {6.0, 4.4, 1.9, 2.9, 3.4, 3.5};
    char[] chars = {'a', 'A', '4', 'F', 'D', 'P'};

    sort(numbers);

    System.out.println(binarySearch(numbers, 3));

   }
}

(Ошибка отображается в терминале)

Test.java:8: error: cannot find symbol
    sort(numbers);
    ^
symbol:   method sort(double[])
location: class Test
 Test.java:10: error: cannot find symbol
    System.out.println(binarySearch(numbers, 3));
                       ^
 symbol:   method binarySearch(double[],int)
 location: class Test
  2 errors

3 ответа

Решение

Это статический метод класса Arrays.

Вы должны вызвать это так:

Arrays.sort(someArray);

Обратите внимание, что вы все равно должны импортировать класс Arrays следующим образом:

import java.util.Arrays;

Или, как уже упоминали другие, если вы делаете статический импорт, вы можете опустить имя класса.

Я бы сказал, что Arrays.sort() лучше для удобочитаемости.

Вам нужно сделать статический импорт. Используйте следующее

import static java.util.Arrays.*;

причина

когда вы хотите импортировать некоторые статические элементы (методы или переменные), вам нужно статически импортировать элементы. Так что вы должны использовать import static

Другое решение

или вы можете импортировать

import java.util.Arrays;

и использовать

Arrays.sort(b);

Причина второго решения

здесь вы не импортируете никаких статических элементов, поэтому необходим обычный импорт в массивы. Тогда вы можете получить прямой доступ с помощью Arrays.sort

Вы пытаетесь выполнить статический импорт, но пропустили static,

//   add v this
import static java.util.Arrays.*;
Другие вопросы по тегам