Java Arrays.binarySearch (Object [], int, int, Object) Подпись не распознана - PullRequest
2 голосов
/ 26 июня 2011

Я пытаюсь использовать метод binarySearch, описанный в Спецификации Java API , но моя среда IDE, Eclipse (Helios), не распознает подпись.

Мой класс сводится к его 2 элементам данных и методу, в котором я пытаюсь вызвать Arrays.binarySearch:

import java.util.Arrays; // Access Arrays class
public class SortedStringArrayList {
    // member data
    private String[] items;
    private int size;

    // methods
    public int testBinSearch(String item) {
        int index = Arrays.binarySearch(items, 0, size, item);
    }
}

Когда я кодирую метод, Eclipse предполагает, что мне нужна другая подпись, и сообщает мне:

Метод binarySearch (int [], int) в Тип Массивы не применим для аргументы (String [], int, int, String)

Подписи для двоичного поиска, которые он предложил как доступные, были:

Я очень новичок в Java / Eclipse. Кто-нибудь знает в чем проблема?

1 Ответ

5 голосов
/ 26 июня 2011

Вы должны указать Eclipse использовать Java 1.6 (в настройках проекта).Я предполагаю, что вы на 1.5.1.5 и более старые версии имеют только базовую версию binarySearch, без fromIndex или toIndex.

Если вы хотите, чтобы пользователи со старыми JRE могли запускать вашу программу, вы можете скопировать binarySearch реализаций из источника 1.6 и вставьте его в свой собственный код.

...