0

たまたま2次元である既存のバイト配列に別のバイト配列(1次元)を追加する必要があります。

public static byte[][] ALL_MESSAGES = new byte[][] {SMART_POSTER_NO_TEXT, ENGLISH_PLAIN_TEXT, SMART_POSTER_URL_AND_TEXT};

public void AddOtherMessages()
{
    OtherMessageClass messages = new OtherMessageClass();

    for(NMessage m : messages.Ntexts)
    {
        ArrayUtil.addAll(ALL_MESSAGES, m);
    }

}

AddAllを使用して2つの配列を追加しているため、上記のコードは機能しません。1つは多次元で、もう1つは1次元配列です。ALL_MESSAGESにmを追加するのに助けが必要です。

また、これを実行するには、どのJava名前空間をインポートする必要がありますか?

4

2 に答える 2

0

ArrayUtilは、「org.apache.commons.lang」パッケージの一部です。したがって、同じものを使用するには、対応するjarファイルも含める必要があります。

apache-commons-lang.jarが必要になり、org.apache.commons.lang.ArrayUtilsをインポートする必要があります。詳細については、http://commons.apache.org/lang/api-2.5/org/apache/commons/lang/ArrayUtils.htmlを参照してください。

    for(NMessage m : messages.Ntexts)
    {
        ArrayUtil.addAll(ALL_MESSAGES, m);
    }

上記のコードは機能しませんmはbyte[][]ではありません。mがbyte[]の場合は、代わりに'add()'メソッドを使用する必要があります。messages.Ntextsがbyte[][]を返す場合は、「addAll()」メソッドを使用することもできます。

于 2012-09-17T03:33:10.223 に答える
0

私があなたを正しく理解していれば、余分な配列を に追加したいALL_MESSAGESですか? その場合、リストの使用を検討する必要があると思います:

List<byte[]> list = new ArrayList<byte[]>();

byte[]次に、好きなだけ配列を追加できます。

list.add(new byte[] {1,2,3}); //just an example

そして、それらすべてを同じように簡単に取得できます。

for(byte [] array : list)
{
    //do whatever you like with your individual arrays
}

単一の要素を取得することもできます (インデックス演算子の場合と同様):

byte [] array = list.get(0);
于 2012-09-17T03:41:30.090 に答える