[FlexBuffers][Java] Add override Key::toString (#5533)
authorPaulo Pinheiro <paulovictor.pinheiro@gmail.com>
Wed, 25 Sep 2019 21:14:39 +0000 (23:14 +0200)
committerWouter van Oortmerssen <aardappel@gmail.com>
Wed, 25 Sep 2019 21:14:39 +0000 (14:14 -0700)
java/com/google/flatbuffers/FlexBuffers.java
tests/JavaTest.java

index 3a5c655..7f71e05 100644 (file)
@@ -740,6 +740,11 @@ public class FlexBuffers {
          */
         @Override
         public StringBuilder toString(StringBuilder sb) {
+            return sb.append(toString());
+        }
+
+        @Override
+        public String toString() {
             int size;
             for (int i = end; ; i++) {
                 if (bb.get(i) == 0) {
@@ -747,8 +752,7 @@ public class FlexBuffers {
                     break;
                 }
             }
-            sb.append(Utf8.getDefault().decodeUtf8(bb, end, size));
-            return sb;
+            return Utf8.getDefault().decodeUtf8(bb, end, size);
         }
 
         int compareTo(byte[] other) {
index 2a1e215..b24601b 100644 (file)
@@ -683,6 +683,7 @@ class JavaTest {
         // mymap vector
         FlexBuffers.Map mymap = m.get("mymap").asMap();
         TestEq(mymap.keys().get(0), m.keys().get(0)); // These should be equal by pointer equality, since key and value are shared.
+        TestEq(mymap.keys().get(0).toString(), "bar");
         TestEq(mymap.values().get(0).asString(), vec.get(1).asString());
         TestEq(mymap.get("int").asInt(), -120);
         TestEq((float)mymap.get("float").asFloat(), -123.0f);