ConvertStandardString
This commit is contained in:
@@ -163,12 +163,12 @@ public abstract class ConvertFactory<R extends Reader, W extends Writer> {
|
||||
|
||||
@Override
|
||||
public void convertTo(W out, Object value) {
|
||||
out.writeSmallString(value == null ? null : value.toString());
|
||||
out.writeStandardString(value == null ? null : value.toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object convertFrom(R in) {
|
||||
String t = in.readSmallString();
|
||||
String t = in.readStandardString();
|
||||
return t == null ? null : sqldateInvoker.invoke(null, t);
|
||||
}
|
||||
});
|
||||
@@ -179,12 +179,12 @@ public abstract class ConvertFactory<R extends Reader, W extends Writer> {
|
||||
|
||||
@Override
|
||||
public void convertTo(W out, Object value) {
|
||||
out.writeSmallString(value == null ? null : value.toString());
|
||||
out.writeStandardString(value == null ? null : value.toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object convertFrom(R in) {
|
||||
String t = in.readSmallString();
|
||||
String t = in.readStandardString();
|
||||
return t == null ? null : sqltimeInvoker.invoke(null, t);
|
||||
}
|
||||
});
|
||||
@@ -195,12 +195,12 @@ public abstract class ConvertFactory<R extends Reader, W extends Writer> {
|
||||
|
||||
@Override
|
||||
public void convertTo(W out, Object value) {
|
||||
out.writeSmallString(value == null ? null : value.toString());
|
||||
out.writeStandardString(value == null ? null : value.toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object convertFrom(R in) {
|
||||
String t = in.readSmallString();
|
||||
String t = in.readStandardString();
|
||||
return t == null ? null : timestampInvoker.invoke(null, t);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -5,19 +5,22 @@
|
||||
*/
|
||||
package org.redkale.convert;
|
||||
|
||||
import java.lang.annotation.*;
|
||||
import static java.lang.annotation.ElementType.*;
|
||||
import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
||||
|
||||
import java.lang.annotation.*;
|
||||
|
||||
/**
|
||||
* 序列化时标记String字段的值是否为无转义字符且长度不超过255的字符串,通常用于类名、字段名、枚举值字符串等
|
||||
* replace by {@link org.redkale.convert.ConvertStandardString}
|
||||
*
|
||||
* <p>详情见: https://redkale.org
|
||||
*
|
||||
* @see org.redkale.convert.ConvertStandardString
|
||||
* @deprecated 2.8.0
|
||||
* @author zhangjx
|
||||
* @since 2.3.0
|
||||
*/
|
||||
@Deprecated(since = "2.8.0")
|
||||
@Target({METHOD, FIELD})
|
||||
@Retention(RUNTIME)
|
||||
public @interface ConvertSmallString {}
|
||||
|
||||
23
src/main/java/org/redkale/convert/ConvertStandardString.java
Normal file
23
src/main/java/org/redkale/convert/ConvertStandardString.java
Normal file
@@ -0,0 +1,23 @@
|
||||
/*
|
||||
* Copyright (c) 2016-2116 Redkale
|
||||
* All rights reserved.
|
||||
*/
|
||||
package org.redkale.convert;
|
||||
|
||||
import static java.lang.annotation.ElementType.FIELD;
|
||||
import static java.lang.annotation.ElementType.METHOD;
|
||||
import java.lang.annotation.Retention;
|
||||
import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
/**
|
||||
* 序列化时标记String字段的值是否为无转义字符且长度不超过255的字符串,通常用于类名、字段名、枚举值字符串等
|
||||
*
|
||||
* <p>详情见: https://redkale.org
|
||||
*
|
||||
* @author zhangjx
|
||||
* @since 2.8.0
|
||||
*/
|
||||
@Target({METHOD, FIELD})
|
||||
@Retention(RUNTIME)
|
||||
public @interface ConvertStandardString {}
|
||||
@@ -189,7 +189,7 @@ public abstract class Reader {
|
||||
*
|
||||
* @return String值
|
||||
*/
|
||||
public abstract String readSmallString();
|
||||
public abstract String readStandardString();
|
||||
|
||||
/**
|
||||
* 读取反解析对象的类名
|
||||
|
||||
@@ -335,7 +335,7 @@ public abstract class Writer {
|
||||
*
|
||||
* @param value 非空且不含需要转义的字符的String值
|
||||
*/
|
||||
public abstract void writeSmallString(String value);
|
||||
public abstract void writeStandardString(String value);
|
||||
|
||||
/**
|
||||
* 写入一个String值
|
||||
|
||||
@@ -151,7 +151,7 @@ public class BsonByteBufferReader extends BsonReader {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final String readSmallString() {
|
||||
public final String readStandardString() {
|
||||
int len = 0xff & readByte();
|
||||
if (len == 0) {
|
||||
return "";
|
||||
|
||||
@@ -255,7 +255,7 @@ public class BsonReader extends Reader {
|
||||
|
||||
@Override
|
||||
public final DeMember readFieldName(final DeMemberInfo memberInfo) {
|
||||
final String exceptedField = readSmallString();
|
||||
final String exceptedField = readStandardString();
|
||||
this.fieldTypeEnum = readByte();
|
||||
return memberInfo.getMemberByField(exceptedField);
|
||||
}
|
||||
@@ -345,11 +345,11 @@ public class BsonReader extends Reader {
|
||||
|
||||
@Override
|
||||
public final String readClassName() {
|
||||
return readSmallString();
|
||||
return readStandardString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String readSmallString() {
|
||||
public String readStandardString() {
|
||||
int len = 0xff & readByte();
|
||||
if (len == 0) {
|
||||
return "";
|
||||
|
||||
@@ -234,13 +234,13 @@ public class BsonWriter extends Writer implements ByteTuple {
|
||||
|
||||
@Override
|
||||
public final void writeClassName(String clazz) {
|
||||
writeSmallString(clazz == null ? "" : clazz);
|
||||
writeStandardString(clazz == null ? "" : clazz);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void writeObjectB(Object obj) {
|
||||
super.writeObjectB(obj);
|
||||
writeSmallString("");
|
||||
writeStandardString("");
|
||||
writeShort(BsonReader.SIGN_OBJECTB);
|
||||
}
|
||||
|
||||
@@ -253,7 +253,7 @@ public class BsonWriter extends Writer implements ByteTuple {
|
||||
@Override
|
||||
public final void writeFieldName(EnMember member, String fieldName, Type fieldType, int fieldPos) {
|
||||
writeByte(BsonReader.SIGN_HASNEXT);
|
||||
writeSmallString(fieldName);
|
||||
writeStandardString(fieldName);
|
||||
writeByte(BsonFactory.typeEnum(fieldType));
|
||||
}
|
||||
|
||||
@@ -263,7 +263,7 @@ public class BsonWriter extends Writer implements ByteTuple {
|
||||
* @param value String值
|
||||
*/
|
||||
@Override
|
||||
public final void writeSmallString(String value) {
|
||||
public final void writeStandardString(String value) {
|
||||
if (value.isEmpty()) {
|
||||
writeTo((byte) 0);
|
||||
return;
|
||||
|
||||
@@ -29,12 +29,12 @@ public final class BigDecimalSimpledCoder<R extends Reader, W extends Writer> ex
|
||||
out.writeNull();
|
||||
return;
|
||||
}
|
||||
out.writeSmallString(value.toString());
|
||||
out.writeStandardString(value.toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public BigDecimal convertFrom(R in) {
|
||||
String value = in.readSmallString();
|
||||
String value = in.readStandardString();
|
||||
if (value == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -57,7 +57,7 @@ public final class BigDecimalSimpledCoder<R extends Reader, W extends Writer> ex
|
||||
if (value == null) {
|
||||
out.writeNull();
|
||||
} else {
|
||||
out.writeSmallString(value.toString());
|
||||
out.writeStandardString(value.toString());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ public final class BigIntegerSimpledCoder<R extends Reader, W extends Writer> ex
|
||||
if (value == null) {
|
||||
out.writeNull();
|
||||
} else {
|
||||
out.writeSmallString(value.toString());
|
||||
out.writeStandardString(value.toString());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -86,7 +86,7 @@ public final class BigIntegerSimpledCoder<R extends Reader, W extends Writer> ex
|
||||
out.writeNull();
|
||||
} else {
|
||||
String s = value.toString(16);
|
||||
out.writeSmallString(s.charAt(0) == '-' ? ("-0x" + s.substring(1)) : ("0x" + s));
|
||||
out.writeStandardString(s.charAt(0) == '-' ? ("-0x" + s.substring(1)) : ("0x" + s));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ public class DurationSimpledCoder<R extends Reader, W extends Writer> extends Si
|
||||
|
||||
@Override
|
||||
public Duration convertFrom(R in) {
|
||||
String value = in.readSmallString();
|
||||
String value = in.readStandardString();
|
||||
if (value == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -73,14 +73,14 @@ public final class EnumSimpledCoder<R extends Reader, W extends Writer, E extend
|
||||
} else if (valueEncoder != null) {
|
||||
valueEncoder.convertTo(out, enumToValues.get(value));
|
||||
} else {
|
||||
out.writeSmallString(value.toString());
|
||||
out.writeStandardString(value.toString());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public E convertFrom(final R in) {
|
||||
String value = in.readSmallString();
|
||||
String value = in.readStandardString();
|
||||
if (value == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -43,13 +43,13 @@ public class InstantSimpledCoder<R extends Reader, W extends Writer> extends Sim
|
||||
if (value == null) {
|
||||
out.writeNull();
|
||||
} else {
|
||||
out.writeSmallString(value.toString());
|
||||
out.writeStandardString(value.toString());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Instant convertFrom(R in) {
|
||||
final String str = in.readSmallString();
|
||||
final String str = in.readStandardString();
|
||||
if (str == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -45,12 +45,12 @@ public final class IntSimpledCoder<R extends Reader, W extends Writer> extends S
|
||||
@Override
|
||||
public void convertTo(final W out, final Integer value) {
|
||||
if (value == null) {
|
||||
out.writeSmallString("0x0");
|
||||
out.writeStandardString("0x0");
|
||||
} else {
|
||||
if (value < 0) {
|
||||
throw new ConvertException("Negative values (" + value + ") are not supported");
|
||||
}
|
||||
out.writeSmallString("0x" + Integer.toHexString(value));
|
||||
out.writeStandardString("0x" + Integer.toHexString(value));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -59,13 +59,13 @@ public final class LocalDateSimpledCoder<R extends Reader, W extends Writer> ext
|
||||
if (value == null) {
|
||||
out.writeNull();
|
||||
} else {
|
||||
out.writeSmallString(value.toString());
|
||||
out.writeStandardString(value.toString());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public LocalDate convertFrom(R in) {
|
||||
final String str = in.readSmallString();
|
||||
final String str = in.readStandardString();
|
||||
if (str == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -92,13 +92,13 @@ public final class LocalDateTimeSimpledCoder<R extends Reader, W extends Writer>
|
||||
if (value == null) {
|
||||
out.writeNull();
|
||||
} else {
|
||||
out.writeSmallString(value.toString());
|
||||
out.writeStandardString(value.toString());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public LocalDateTime convertFrom(R in) {
|
||||
final String str = in.readSmallString();
|
||||
final String str = in.readStandardString();
|
||||
if (str == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -57,13 +57,13 @@ public final class LocalTimeSimpledCoder<R extends Reader, W extends Writer> ext
|
||||
if (value == null) {
|
||||
out.writeNull();
|
||||
} else {
|
||||
out.writeSmallString(value.toString());
|
||||
out.writeStandardString(value.toString());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public LocalTime convertFrom(R in) {
|
||||
final String str = in.readSmallString();
|
||||
final String str = in.readStandardString();
|
||||
if (str == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -45,12 +45,12 @@ public final class LongSimpledCoder<R extends Reader, W extends Writer> extends
|
||||
@Override
|
||||
public void convertTo(final W out, final Long value) {
|
||||
if (value == null) {
|
||||
out.writeSmallString("0x0");
|
||||
out.writeStandardString("0x0");
|
||||
} else {
|
||||
if (value < 0) {
|
||||
throw new ConvertException("Negative values (" + value + ") are not supported");
|
||||
}
|
||||
out.writeSmallString("0x" + Long.toHexString(value));
|
||||
out.writeStandardString("0x" + Long.toHexString(value));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -39,12 +39,12 @@ public final class StringSimpledCoder<R extends Reader, W extends Writer> extend
|
||||
|
||||
@Override
|
||||
public void convertTo(W out, String value) {
|
||||
out.writeSmallString(value);
|
||||
out.writeStandardString(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String convertFrom(R in) {
|
||||
return in.readSmallString();
|
||||
return in.readStandardString();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,13 +25,13 @@ public class TypeSimpledCoder<R extends Reader, W extends Writer> extends Simple
|
||||
if (value == null) {
|
||||
out.writeNull();
|
||||
} else {
|
||||
out.writeSmallString(value.getName());
|
||||
out.writeStandardString(value.getName());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class convertFrom(R in) {
|
||||
String str = in.readSmallString();
|
||||
String str = in.readStandardString();
|
||||
if (str == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -60,13 +60,13 @@ public final class Uint128SimpledCoder<R extends Reader, W extends Writer> exten
|
||||
if (value == null) {
|
||||
out.writeNull();
|
||||
} else {
|
||||
out.writeSmallString(value.toString());
|
||||
out.writeStandardString(value.toString());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Uint128 convertFrom(R in) {
|
||||
final String str = in.readSmallString();
|
||||
final String str = in.readStandardString();
|
||||
if (str == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -486,7 +486,7 @@ public class JsonByteBufferReader extends JsonReader {
|
||||
* @return String值
|
||||
*/
|
||||
@Override
|
||||
public final String readSmallString() {
|
||||
public final String readStandardString() {
|
||||
return readString(true);
|
||||
}
|
||||
|
||||
|
||||
@@ -144,12 +144,12 @@ public abstract class JsonDynEncoder<T> extends ObjectEncoder<JsonWriter, T> {
|
||||
if (fieldType == int.class) {
|
||||
intFieldCount++;
|
||||
}
|
||||
if (fieldType == String.class && membersSize == 1 && readConvertSmallString(factory, element) != null) {
|
||||
if (fieldType == String.class && membersSize == 1 && isConvertStandardString(factory, element)) {
|
||||
onlyOneLatin1FieldObjectFlag = true;
|
||||
} else if (fieldType != short.class
|
||||
&& fieldType != int.class
|
||||
&& fieldType != long.class
|
||||
&& !(fieldType == String.class && readConvertSmallString(factory, element) != null)) {
|
||||
&& !(fieldType == String.class && isConvertStandardString(factory, element))) {
|
||||
onlyShotIntLongLatin1MoreFieldObjectFlag = false;
|
||||
}
|
||||
}
|
||||
@@ -612,7 +612,7 @@ public abstract class JsonDynEncoder<T> extends ObjectEncoder<JsonWriter, T> {
|
||||
mv.visitVarInsn(loadid, maxLocals);
|
||||
mv.visitMethodInsn(INVOKEVIRTUAL, writerName, "writeDouble", "(D)V", false);
|
||||
} else if (fieldType == String.class) {
|
||||
if (readConvertSmallString(factory, element) == null) {
|
||||
if (!isConvertStandardString(factory, element)) {
|
||||
mv.visitVarInsn(ALOAD, 1);
|
||||
mv.visitVarInsn(loadid, maxLocals);
|
||||
mv.visitMethodInsn(
|
||||
@@ -875,23 +875,37 @@ public abstract class JsonDynEncoder<T> extends ObjectEncoder<JsonWriter, T> {
|
||||
}
|
||||
}
|
||||
|
||||
protected static ConvertSmallString readConvertSmallString(JsonFactory factory, AccessibleObject element) {
|
||||
protected static boolean isConvertStandardString(JsonFactory factory, AccessibleObject element) {
|
||||
if (element instanceof Field) {
|
||||
return ((Field) element).getAnnotation(ConvertSmallString.class);
|
||||
return ((Field) element).getAnnotation(ConvertStandardString.class) != null
|
||||
|| ((Field) element).getAnnotation(ConvertSmallString.class) != null;
|
||||
}
|
||||
Method method = (Method) element;
|
||||
ConvertSmallString small = method.getAnnotation(ConvertSmallString.class);
|
||||
if (small == null) {
|
||||
ConvertStandardString standard = method.getAnnotation(ConvertStandardString.class);
|
||||
if (standard == null) {
|
||||
try {
|
||||
Field f = method.getDeclaringClass().getDeclaredField(factory.readGetSetFieldName(method));
|
||||
if (f != null) {
|
||||
small = f.getAnnotation(ConvertSmallString.class);
|
||||
standard = f.getAnnotation(ConvertStandardString.class);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// do nothing
|
||||
}
|
||||
}
|
||||
return small;
|
||||
if (standard == null) {
|
||||
if (method.getAnnotation(ConvertSmallString.class) != null) {
|
||||
return true;
|
||||
}
|
||||
try {
|
||||
Field f = method.getDeclaringClass().getDeclaredField(factory.readGetSetFieldName(method));
|
||||
if (f != null && f.getAnnotation(ConvertSmallString.class) != null) {
|
||||
return true;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// do nothing
|
||||
}
|
||||
}
|
||||
return standard != null;
|
||||
}
|
||||
|
||||
protected static Class readGetSetFieldType(AccessibleObject element) {
|
||||
|
||||
@@ -107,7 +107,7 @@ public class JsonReader extends Reader {
|
||||
nextGoodChar(true); // 读掉 { [
|
||||
for (String key1 : keys) {
|
||||
while (this.hasNext()) {
|
||||
String field = this.readSmallString();
|
||||
String field = this.readStandardString();
|
||||
readBlank();
|
||||
if (key1.equals(field)) {
|
||||
break;
|
||||
@@ -129,7 +129,7 @@ public class JsonReader extends Reader {
|
||||
break;
|
||||
case '{':
|
||||
while (hasNext()) {
|
||||
this.readSmallString(); // 读掉field
|
||||
this.readStandardString(); // 读掉field
|
||||
this.readBlank();
|
||||
this.skipValue();
|
||||
}
|
||||
@@ -663,7 +663,7 @@ public class JsonReader extends Reader {
|
||||
}
|
||||
|
||||
public final String readFieldName() {
|
||||
return this.readSmallString();
|
||||
return this.readStandardString();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -708,7 +708,7 @@ public class JsonReader extends Reader {
|
||||
|
||||
@Override
|
||||
public final boolean readBoolean() {
|
||||
return "true".equalsIgnoreCase(this.readSmallString());
|
||||
return "true".equalsIgnoreCase(this.readStandardString());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -759,7 +759,7 @@ public class JsonReader extends Reader {
|
||||
|
||||
@Override
|
||||
public final float readFloat() {
|
||||
String chars = readSmallString();
|
||||
String chars = readStandardString();
|
||||
if (chars != null) {
|
||||
chars = chars.trim();
|
||||
}
|
||||
@@ -778,7 +778,7 @@ public class JsonReader extends Reader {
|
||||
|
||||
@Override
|
||||
public final double readDouble() {
|
||||
String chars = readSmallString();
|
||||
String chars = readStandardString();
|
||||
if (chars != null) {
|
||||
chars = chars.trim();
|
||||
}
|
||||
@@ -796,7 +796,7 @@ public class JsonReader extends Reader {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String readSmallString() {
|
||||
public String readStandardString() {
|
||||
final int eof = this.limit;
|
||||
if (this.position == eof) {
|
||||
return null;
|
||||
|
||||
@@ -159,7 +159,7 @@ public abstract class JsonWriter extends Writer {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void writeSmallString(String value) {
|
||||
public final void writeStandardString(String value) {
|
||||
writeLatin1To(true, value);
|
||||
}
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ public class ProtobufEnumSimpledCoder<R extends ProtobufReader, W extends Protob
|
||||
if (value == null) {
|
||||
out.writeNull();
|
||||
} else if (enumtostring) {
|
||||
out.writeSmallString(value.toString());
|
||||
out.writeStandardString(value.toString());
|
||||
} else {
|
||||
out.writeUInt32(value.ordinal());
|
||||
}
|
||||
@@ -56,7 +56,7 @@ public class ProtobufEnumSimpledCoder<R extends ProtobufReader, W extends Protob
|
||||
@SuppressWarnings("unchecked")
|
||||
public E convertFrom(final R in) {
|
||||
if (enumtostring) {
|
||||
String value = in.readSmallString();
|
||||
String value = in.readStandardString();
|
||||
return value == null ? null : (E) Enum.valueOf((Class<E>) type, value);
|
||||
} else {
|
||||
int value = in.readRawVarint32();
|
||||
|
||||
@@ -439,7 +439,7 @@ public class ProtobufReader extends Reader {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final String readSmallString() {
|
||||
public final String readStandardString() {
|
||||
return readString();
|
||||
}
|
||||
|
||||
|
||||
@@ -385,7 +385,7 @@ public class ProtobufWriter extends Writer implements ByteTuple {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void writeSmallString(String value) {
|
||||
public final void writeStandardString(String value) {
|
||||
writeString(value);
|
||||
}
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ import java.lang.reflect.Type;
|
||||
import java.util.*;
|
||||
import org.junit.jupiter.api.*;
|
||||
import org.redkale.convert.Convert;
|
||||
import org.redkale.convert.ConvertSmallString;
|
||||
import org.redkale.convert.ConvertStandardString;
|
||||
import org.redkale.convert.Decodeable;
|
||||
import org.redkale.convert.json.*;
|
||||
import org.redkale.util.TypeToken;
|
||||
@@ -93,7 +93,7 @@ public class Json5Test {
|
||||
|
||||
public String name;
|
||||
|
||||
@ConvertSmallString
|
||||
@ConvertStandardString
|
||||
public String desc;
|
||||
|
||||
@Override
|
||||
|
||||
@@ -20,7 +20,7 @@ public final class Message {
|
||||
|
||||
private List<Long> longs;
|
||||
|
||||
@ConvertSmallString
|
||||
@ConvertStandardString
|
||||
private String message;
|
||||
|
||||
public Message() {}
|
||||
|
||||
Reference in New Issue
Block a user