类 ClassName

java.lang.Object
cn.wjybxx.dsoncodec.ClassName

@Immutable public final class ClassName extends Object
结构化的类型名。 1.跨语言时,建议为泛型类提供别名,避免反引号。 2.不要为数组提供别名,保持'[]'结尾。

格式化样式

ClassName的编码样式采用了C#的TypeName编码样式,
 System.Collections.Generic.Dictionary`2
 [
   System.Int32,
   System.String[]
 ][]
 
1. 数组用一对方括号表示'[]',中间不可包含空白字符; 2. 泛型参数放在一对方括号中'[,]',通过逗号分隔;
作者:
wjybxx date - 2024/4/24
  • 字段详细资料

    • clsName

      public final String clsName
      无泛型参数的类型别名(简单名)。 1. 如果不是泛型类,类名仅包含类的简单名。 2. 如果是泛型类,类名包含泛型参数的个数 —— 别名可能不包含。 3. 如果是数组,包含[],每一阶一组[] —— []之间不可以有空格。
    • typeArgs

      public final List<ClassName> typeArgs
      泛型参数信息,无泛型时为空List
  • 构造器详细资料

  • 方法详细资料

    • isArray

      public boolean isArray()
      是否是数组类型。 注意:如果为特定类型数组取了别名,该测试不一定准确;应尽量避免为数组定义别名。
    • getArrayRank

      public int getArrayRank()
      数组的阶数(维度)。 如果是数组,则返回对应的阶数,否则返回0
    • getRootElement

      public String getRootElement()
      获取根元素类型。 如果是数组,则返回数组的最终元素类型,否则直接返回clsName
    • isGeneric

      public boolean isGeneric()
      是否是泛型。 注意:如果为特定构造泛型取了别名,该测试不一定准确。
    • equals

      public boolean equals(Object o)
      覆盖:
      equals 在类中 Object
    • hashCode

      public int hashCode()
      覆盖:
      hashCode 在类中 Object
    • toString

      public String toString()
      覆盖:
      toString 在类中 Object
    • toString

      public StringBuilder toString(StringBuilder sb)
      ClassName转换为Dson字符串格式
      参数:
      sb - 方便外部池化减少开销
      返回:
      fullClsName
    • parse

      public static ClassName parse(String fullClsName)
      将Dson格式类型名字符串转换为结构体
      参数:
      fullClsName - Dson格式的完整类名
      返回:
      结构化的类名