【问题标题】:Java Arrays.binarySearch(Object[], int, int, Object) Signature Not RecognizedJava Arrays.binarySearch(Object[], int, int, Object) 签名无法识别
【发布时间】:2011-06-26 03:54:19
【问题描述】:

我正在尝试使用Java API Specification 中记录的 binarySearch 方法,但我的 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, 字符串)

它建议可用的 binarySearch 签名是:

我对 Java/Eclipse 非常陌生。有谁知道问题出在哪里?

【问题讨论】:

    标签: java arrays eclipse signature binary-search


    【解决方案1】:

    您需要告诉 Eclipse 使用 Java 1.6(在项目设置下)。我猜你是1.5。 1.5及更早的版本只有binarySearch的基本版本,没有fromIndextoIndex

    如果您希望使用较旧 JRE 的用户能够运行您的程序,您可以从 the 1.6 source 复制 binarySearch 实现并将其粘贴到您自己的代码中。

    【讨论】:

    • 这听起来完全合理。 1.5 到 1.6 并没有改变 ton,但是在它改变的地方,阅读错误的文档是一个主要问题。
    • Javadocs 确实说 Since: 1.6,但它很微妙且容易被忽视。
    • 谢谢大家!我确实在 1.5 上。
    猜你喜欢
    • 1970-01-01
    • 2013-10-20
    • 2017-02-10
    • 2020-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-02
    • 1970-01-01
    相关资源
    最近更新 更多