From 978a32d0a21d6b53264327b634063e4caab721be Mon Sep 17 00:00:00 2001 From: Ricardo Caldas Date: Sun, 7 Jun 2020 10:00:48 -0300 Subject: [PATCH] [BAEL-4136] What is this: [Ljava.lang.Object;? Code article --- .../JavaArraysToStringUnitTest.java | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 core-java-modules/core-java-io-conversions-2/src/test/java/com/baeldung/arraystostring/JavaArraysToStringUnitTest.java diff --git a/core-java-modules/core-java-io-conversions-2/src/test/java/com/baeldung/arraystostring/JavaArraysToStringUnitTest.java b/core-java-modules/core-java-io-conversions-2/src/test/java/com/baeldung/arraystostring/JavaArraysToStringUnitTest.java new file mode 100644 index 0000000000..2c81b1358b --- /dev/null +++ b/core-java-modules/core-java-io-conversions-2/src/test/java/com/baeldung/arraystostring/JavaArraysToStringUnitTest.java @@ -0,0 +1,36 @@ +package com.baeldung.arraystostring; + +import org.junit.Test; + +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class JavaArraysToStringUnitTest { + + @Test public void givenInstanceOfArray_whenTryingToConvertToString_thenNameOfClassIsShown() { + Object[] arrayOfObjects = { "John", 2, true }; + assertTrue(arrayOfObjects.toString().startsWith("[Ljava.lang.Object;")); + } + + @Test public void givenInstanceOfArray_useArraysToStringToConvert_thenValueOfObjectsAreShown() { + Object[] arrayOfObjects = { "John", 2, true }; + assertEquals(Arrays.toString(arrayOfObjects), "[John, 2, true]"); + } + + @Test public void givenInstanceOfDeepArray_userArraysDeepToStringToConvert_thenValueOfInnerObjectsAreShown() { + Object[] innerArray = { "We", "Are", "Inside" }; + Object[] arrayOfObjects = { "John", 2, innerArray }; + assertEquals(Arrays.deepToString(arrayOfObjects), "[John, 2, [We, Are, Inside]]"); + } + + @Test public void givenInstanceOfDeepArray_useStreamsToConvert_thenValueOfObjectsAreShown() { + Object[] arrayOfObjects = { "John", 2, true }; + List listOfString = Stream.of(arrayOfObjects).map(Object::toString).collect(Collectors.toList()); + assertEquals(listOfString.toString(), "[John, 2, true]"); + } +}