12

私が使用したときにコードが機能し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
4

3 に答える 3

27

クラスArraysの静的メソッドです。

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

Arrays.sort(someArray);

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

import java.util.Arrays;

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

Arrays.sort()その方が可読性に優れていると私は主張します。

于 2013-05-24T19:26:20.077 に答える
6

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

import static java.util.Arrays.*;

理由

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

別の解決策

またはインポートできます

import java.util.Arrays;

そして使う

Arrays.sort(b);

2 番目の解決策の理由

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

于 2013-05-24T19:27:00.047 に答える
2

静的インポートを行おうとしていますが、失敗しましたstatic

//   add v this
import static java.util.Arrays.*;
于 2013-05-24T19:26:16.710 に答える