Mi az a [Ljava.lang.Object ;?
1. Áttekintés
Ebben az oktatóanyagban megtudjuk, mit [Ljava.lang.Tárgy eszközök és hogyan érhető el az objektum megfelelő értéke.
2. Java Object Class
Ha a Java-ban egy értéket közvetlenül egy objektumból akarunk kinyomtatni, akkor az első dolog, amit megpróbálhatunk, az annak hívása Sztring módszer:
Object [] arrayOfObjects = {"John", 2, igaz}; assertTrue (arrayOfObjects.toString (). startsWith ("[Ljava.lang.Object;"));
Ha lefuttatjuk a tesztet, az sikeres lesz, de általában nem túl hasznos eredmény.
Amit meg akarunk tenni, az a tömb belsejében lévő értékek nyomtatása. Ehelyett van [Ljava.lang.Tárgy. Az osztály neve, a Object.class :
getClass (). getName () + '@' + Integer.toHexString (hashCode ())
Amikor az osztály nevét közvetlenül az objektumtól kapjuk, akkor a belső neveket a JVM-től kapjuk, típusaikkal együtt, ezért vannak olyan extra karakterek [ és L, ezek az Array és az ClassName típusokat képviselik.
3. Értelmes értékek nyomtatása
Az eredmény helyes kinyomtatásához használhatunk néhány osztályt a java.util csomag.
3.1. Tömbök
Például használhatunk két módszert a Tömbök osztály foglalkozik az átalakítással.
Egydimenziós tömbökkel használhatjuk a Sztring módszer:
Object [] arrayOfObjects = {"John", 2, igaz}; assertEquals (Arrays.toString (arrayOfObjects), "[John, 2, igaz]");
A mélyebb tömbökhöz a deepToString módszer:
Object [] internalArray = {"Mi", "Are", "Belül"}; Object [] arrayOfObjects = {"John", 2, internalArray}; assertEquals (Arrays.deepToString (arrayOfObjects), "[John, 2, [We, Are, Inside]]");
3.2. Folyó
A JDK 8 egyik jelentős újdonsága a Java-streamek bevezetése, amely osztályokat tartalmaz az elemek sorozatainak feldolgozásához:
Object [] arrayOfObjects = {"John", 2, igaz}; List listOfString = Stream.of (arrayOfObjects) .map (Object :: toString) .collect (Collectors.toList ()); assertEquals (listOfString.toString (), "[John, 2, igaz]");
Először létrehoztunk egy adatfolyamot a segítő módszerrel nak,-nek. A tömbben lévő összes objektumot karakterlánccá alakítottuk át térkép, akkor beillesztettük egy listába a gyűjt az értékek kinyomtatásához.
4. Következtetés
Ebben az oktatóanyagban láthattuk, hogyan tudunk értelmes információkat kinyomtatni egy tömbből, és elkerülni az alapértelmezetteket [Ljava.lang.Tárgy ;.
A cikk forráskódját mindig megtaláljuk a GitHubon.