From 254ab9a25ab9b0c1445712ce780924306fb39a38 Mon Sep 17 00:00:00 2001 From: redkale Date: Mon, 19 Aug 2024 19:47:38 +0800 Subject: [PATCH] ByteTuple --- src/main/java/org/redkale/util/ByteArray.java | 4 +++- src/main/java/org/redkale/util/ByteTuple.java | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/redkale/util/ByteArray.java b/src/main/java/org/redkale/util/ByteArray.java index 7ba9b9422..c7f238bfa 100644 --- a/src/main/java/org/redkale/util/ByteArray.java +++ b/src/main/java/org/redkale/util/ByteArray.java @@ -23,6 +23,8 @@ import org.redkale.annotation.Nullable; */ public final class ByteArray implements ByteTuple { + static final byte[] EMPTY_BYTES = new byte[0]; + private byte[] content; private int count; @@ -431,7 +433,7 @@ public final class ByteArray implements ByteTuple { */ public byte[] getBytes(int offset, int length) { if (length < 1) { - return new byte[0]; + return EMPTY_BYTES; } byte[] bs = new byte[length]; System.arraycopy(this.content, offset, bs, 0, length); diff --git a/src/main/java/org/redkale/util/ByteTuple.java b/src/main/java/org/redkale/util/ByteTuple.java index a90558897..797dd9e6c 100644 --- a/src/main/java/org/redkale/util/ByteTuple.java +++ b/src/main/java/org/redkale/util/ByteTuple.java @@ -27,4 +27,22 @@ public interface ByteTuple { int o = offset(); return Arrays.copyOfRange(content(), o, o + length()); } + + public static final ByteTuple EMPTY = new ByteTuple() { + + @Override + public byte[] content() { + return ByteArray.EMPTY_BYTES; + } + + @Override + public int offset() { + return 0; + } + + @Override + public int length() { + return 0; + } + }; }