次のように定義されたマップがあります
HashMap<Object, Object> hashMap;
次に、各ペアを反復処理して、キーと値を出力する必要があります。のようなタイプkey.toString()
でvalue.toString()
うまく機能しますArrayList
。しかしtoString()
、配列では読み取り可能な文字列は得られません。
について承知しておりArrays.toString()
ます。Arrays.toString()
しかし、オブジェクト配列が必要であり、私が持っているのはオブジェクトだけであるため、私の場合は使用できません。そこで、次のようなカスタム コードを作成しました。
private String convertToHumanReadableFormat(Object value) {
if (value == null) return "N/A";
if (value.getClass().isArray()) {
return convertArrayToReadableFormat(value);
}
return value.toString();
}
private String convertArrayToReadableFormat(Object value) {
String output = "[";
int arrayLength = Array.getLength(value);
for (int i = 0; i < arrayLength; i++) {
Object element = Array.get(value, i);
if (element != null) {
if (element.getClass().isArray()) {
output += convertArrayToReadableFormat(element);
}
else {
output += element.toString();
}
}
if ((i + 1) < arrayLength)
output += ", ";
}
output += "]";
return output;
}
私は実際に何をするかを複製してArrays.deepToString()
います。Arrays.toString()
しかし、 orを使用する方法がわかりませんArrays.deepToString()
。
これは問題に対する正しいアプローチですか、それともこれらの標準的な方法を私のために機能させる方法はありますか?
どんな助けでも素晴らしいでしょう。