オブジェクトが次のような配列の場合、オブジェクトを文字列に変換したい
public void convertValue(Object value) {
if(value.getClass().isArray()){
Arrays.deepToString(value.toArray());
}
}
「value.toArray()」を作成するために値をキャストするにはどうすればよいですか?
オブジェクト配列 (プリミティブ配列ではなく)のみを処理したい場合はObject[]
、配列の差異により、 にキャストできます。
if (value instanceof Object[]) {
String text = Arrays.deepToString((Object[]) value);
...
}
deepToString
もちろん、プリミティブ配列の場合はとにかく呼び出すことはできません。
配列分散を示すサンプル コード:
public class Test {
public static void main(String[] args) {
Object x = new String[] { "Hello", "there" };
Object[] array = (String[]) x;
// Prints "class [Ljava.lang.String;"
System.out.println(array.getClass());
}
}
ご覧のとおり、array
値は引き続き文字列配列を参照していますが、参照を変数String[]
に割り当てることができます。Object[]