6

与えられた変数:

Object[] ab = new Object[] { "a", "b" };
Object[] cd = new Object[] { "c", "d" };

次のメソッドを呼び出す場合:

public static void m(Object... objects) {
    System.out.println(Arrays.asList(objects));
}

使用:

m(ab, cd);

期待される出力が得られます。

[[Ljava.lang.Object;@3e25a5, [Ljava.lang.Object;@19821f]

しかし、使用する場合:

m(ab);

私は得る:

[a, b]

以来strings <- ab、そうではありませんstrings[0] <- ab

コンパイラに配列を配列の最初の値として強制的に取得させ、出力を得るにはどうすればよいですか。abstrings

[Ljava.lang.Object;@3e25a5

?

4

2 に答える 2

9

通過中にタイプキャストすると、必要なものが得られます-

m((Object)ab);
于 2013-03-19T09:12:28.543 に答える
3

@Sudhansuによって提案されたものは別として。変数を以下のように定義できるため、単一の配列を渡すときにメソッド呼び出しでキャストする必要がありません。

Object ab = new Object[] { "a", "b" };
Object cd = new Object[] { "c", "d" };
于 2013-03-19T09:18:57.427 に答える