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.


$config[zx-auto] not found$config[zx-overlay] not found