web-dev-qa-db-ja.com

シンボルが見つかりません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
8
JavaNoob

これは、クラスArraysの静的メソッドです。

次のように呼び出す必要があります。

_Arrays.sort(someArray);
_

次のようにArraysクラスをインポートする必要があることに注意してください。

_import Java.util.Arrays;
_

または、他の人が述べているように、静的インポートを行う場合は、クラス名を省略できます。

読みやすさにはArrays.sort()の方が優れていると思います。

18
jahroy

静的インポートを行う必要があります。以下を使用してください

import static Java.util.Arrays.*;

理由

一部の静的メンバー(メソッドまたは変数)をインポートする場合は、メンバーを静的にインポートする必要があります。したがって、import staticを使用する必要があります

別の解決策

またはインポートすることができます

import Java.util.Arrays;

と使用

Arrays.sort(b);

2番目の解決策の理由

ここでは静的要素をインポートしていないため、配列への通常のインポートが必要です。次に、Arrays.sortを使用して直接アクセスできます

5
stinepike

静的インポートを実行しようとしていますが、staticを見逃しました。

//   add v this
import static Java.util.Arrays.*;
2
rgettman