diff --git a/ContentGrabbingJi-framework-api/src/main/java/net/lamgc/cgj/bot/framework/message/AbstractBotCode.java b/ContentGrabbingJi-framework-api/src/main/java/net/lamgc/cgj/bot/framework/message/AbstractBotCode.java index 4d34adb..0548f69 100644 --- a/ContentGrabbingJi-framework-api/src/main/java/net/lamgc/cgj/bot/framework/message/AbstractBotCode.java +++ b/ContentGrabbingJi-framework-api/src/main/java/net/lamgc/cgj/bot/framework/message/AbstractBotCode.java @@ -116,19 +116,4 @@ public abstract class AbstractBotCode implements BotCode { return Collections.unmodifiableSet(functionProperties.keySet()); } - @Override - public int length() { - return contentToString().length(); - } - - @Override - public char charAt(int index) { - return contentToString().charAt(index); - } - - @Override - public CharSequence subSequence(int start, int end) { - return contentToString().subSequence(start, end); - } - } diff --git a/ContentGrabbingJi-framework-api/src/main/java/net/lamgc/cgj/bot/framework/message/CharSequenceMessage.java b/ContentGrabbingJi-framework-api/src/main/java/net/lamgc/cgj/bot/framework/message/CharSequenceMessage.java index 9114fd6..8c770b7 100644 --- a/ContentGrabbingJi-framework-api/src/main/java/net/lamgc/cgj/bot/framework/message/CharSequenceMessage.java +++ b/ContentGrabbingJi-framework-api/src/main/java/net/lamgc/cgj/bot/framework/message/CharSequenceMessage.java @@ -39,21 +39,6 @@ public final class CharSequenceMessage implements Message { return content.toString(); } - @Override - public int length() { - return content.length(); - } - - @Override - public char charAt(int index) { - return content.charAt(index); - } - - @Override - public CharSequence subSequence(int start, int end) { - return content.subSequence(start, end); - } - @Override public String toString() { return "CharSequenceMessage{" + diff --git a/ContentGrabbingJi-framework-api/src/main/java/net/lamgc/cgj/bot/framework/message/Message.java b/ContentGrabbingJi-framework-api/src/main/java/net/lamgc/cgj/bot/framework/message/Message.java index 9493cb9..23737fc 100644 --- a/ContentGrabbingJi-framework-api/src/main/java/net/lamgc/cgj/bot/framework/message/Message.java +++ b/ContentGrabbingJi-framework-api/src/main/java/net/lamgc/cgj/bot/framework/message/Message.java @@ -29,4 +29,39 @@ public interface Message extends CharSequence { */ String contentToString(); + /** + * 返回该消息经过 {@link #contentToString()} 后的字符串长度. + * @return 返回 {@link #contentToString()} 返回字符串的长度. + * @see CharSequence#length() + */ + @Override + default int length() { + return contentToString().length(); + } + + /** + * 从 {@link #contentToString()} 所返回的字符串中取出指定索引的字符. + * @param index 字符索引. + * @return 返回字符串指定索引对应的字符. + * @throws IndexOutOfBoundsException 如果索引参数为负数或不小于此字符串的长度. + * @see CharSequence#charAt(int) + */ + @Override + default char charAt(int index) { + return contentToString().charAt(index); + } + + /** + * 截取从 {@link #contentToString()} 中返回字符串内的一段字符序列. + * @param start 截取起始索引. + * @param end 截取终止索引. + * @return 返回新的字符序列对象. + * @throws IndexOutOfBoundsException 如果 beginIndex 或 endIndex 为负, + * endIndex 大于 {@link #length()}, 或者 beginIndex 大于 endIndex 时抛出. + * @see CharSequence#subSequence(int, int) + */ + @Override + default CharSequence subSequence(int start, int end) { + return contentToString().subSequence(start, end); + } } diff --git a/ContentGrabbingJi-framework-api/src/main/java/net/lamgc/cgj/bot/framework/message/MessageChain.java b/ContentGrabbingJi-framework-api/src/main/java/net/lamgc/cgj/bot/framework/message/MessageChain.java index fdbc076..c46f580 100644 --- a/ContentGrabbingJi-framework-api/src/main/java/net/lamgc/cgj/bot/framework/message/MessageChain.java +++ b/ContentGrabbingJi-framework-api/src/main/java/net/lamgc/cgj/bot/framework/message/MessageChain.java @@ -85,19 +85,4 @@ public final class MessageChain implements Message { return builder.toString(); } - @Override - public int length() { - return contentToString().length(); - } - - @Override - public char charAt(int index) { - return contentToString().charAt(index); - } - - @Override - public CharSequence subSequence(int start, int end) { - return contentToString().subSequence(start, end); - } - }