1

これはおそらく、盲目的に明白な答えを持つ質問です。私はそれを見ることができないだけで、誰かが私にそれをはっきりと指摘すると、おそらく非常に小さいと感じるでしょう.

私は Android を Eclair MR1 レベルで使用しているため、Android マニフェストには次のものがあります。

<uses-sdk android:minSdkVersion="7" />

私の MainActivity には、より大きなサイズに再割り当てしたい byte[] があります。

Java SE 6 には、すべての基本型に対してそれを行うための静的メソッドを備えた java.util.Arrays クラスがあります。http://developer.android.com/reference/java/util/Arrays.html#copyOf%28byte[],%20int%29の Android ドキュメントに記載されているクラスを確認できます。

これが私のコードです:

    byte [] padToLength (byte[] plain) {

    try{
        byte[] plainpad2 = java.util.Arrays.copyOf(plain, plain.length+10);  //why won't this compile?
    } catch (Exception e) {

    }

しかし、それを使用すると、Eclipse でコンパイル エラーが発生し、「メソッド copyOf(byte[], int) は型 Array に対して未定義です。

誰かが私が間違っていることを提案できますか?

4

1 に答える 1

1

Arrays.copyOf(byte[], int)はAPIレベル7には定義されていません。指定したリンクで、右上隅を確認すると、[APIレベルでフィルター]というチェックボックスが表示されます。を選択7すると、そのメソッドが削除されます。

とにかくなぜ配列を使っているのですか?ArrayListJavaでは、パフォーマンスの問題が発生していない限り、ほとんどの場合を使用する必要があります。その場合、配列のサイズについてまったく心配する必要はありません。関数がbyte[]パラメータを受け入れる必要がある場合は、のようなものを呼び出すことをお勧めしますList<Byte> myList = Arrays.asList(plain)

于 2012-04-20T03:04:06.853 に答える