Module java.management

Class OpenType<T>

java.lang.Object
javax.management.openmbean.OpenType<T>
类型参数:
T - 描述此类型实例必须具有的Java类型。例如,SimpleType.INTEGER 是一个 SimpleType<Integer>,它是OpenType<Integer>的子类,这意味着被描述为SimpleType.INTEGER的属性、参数或返回值必须具有Java类型Integer
所有已实现的接口:
Serializable
直接已知子类:
ArrayType, CompositeType, SimpleType, TabularType

public abstract class OpenType<T> extends Object implements Serializable
OpenType类是描述开放数据值的实际开放类型的所有类的父抽象类。

开放类型由以下内容定义:

  • 此类型描述的开放数据值的完全限定Java类名;请注意,仅允许一组有限的Java类用于开放数据值(请参阅ALLOWED_CLASSNAMES_LIST),
  • 它的名称,
  • 它的描述。
自版本:
1.5
另请参阅:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String[]
    已弃用。
    static final List<String>
    允许用于开放数据值的Java类的完全限定名称列表。
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    OpenType(String className, String typeName, String description)
    构造一个OpenType实例(实际上是一个子类实例,因为OpenType是抽象的),检查给定参数的有效性。
  • Method Summary

    Modifier and Type
    Method
    Description
    abstract boolean
    equals(Object obj)
    将指定的obj参数与此开放类型实例进行比较以判断是否相等。
    返回此开放类型描述的开放数据值的完全限定Java类名。
    返回此OpenType实例的文本描述。
    返回此OpenType实例的名称。
    abstract int
    为对象返回哈希码值。
    boolean
    如果此开放类型描述的开放数据值是数组,则返回true,否则返回false
    abstract boolean
    isValue(Object obj)
    测试obj是否为此开放类型的值。
    abstract String
    返回此开放类型实例的字符串表示形式。

    Methods declared in class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Field Details

    • ALLOWED_CLASSNAMES_LIST

      public static final List<String> ALLOWED_CLASSNAMES_LIST
      允许用于开放数据值的Java类的完全限定名称列表。这些类或其对应的基本类型的多维数组也是开放数据值的允许类。
      ALLOWED_CLASSNAMES_LIST = {
              "java.lang.Void",
              "java.lang.Boolean",
              "java.lang.Character",
              "java.lang.Byte",
              "java.lang.Short",
              "java.lang.Integer",
              "java.lang.Long",
              "java.lang.Float",
              "java.lang.Double",
              "java.lang.String",
              "java.math.BigDecimal",
              "java.math.BigInteger",
              "java.util.Date",
              "javax.management.ObjectName",
              CompositeData.class.getName(),
              TabularData.class.getName() } ;
             
    • ALLOWED_CLASSNAMES

      @Deprecated public static final String[] ALLOWED_CLASSNAMES
      Deprecated.
  • Constructor Details

    • OpenType

      protected OpenType(String className, String typeName, String description) throws OpenDataException
      构造一个OpenType实例(实际上是一个子类实例,因为OpenType是抽象的),检查给定参数的有效性。下面描述了每个参数的有效性约束。
       
      参数:
      className - 此开放类型描述的开放数据值的完全限定Java类名。允许用于开放数据值的有效Java类名列在ALLOWED_CLASSNAMES_LIST中。任何这些类或其对应的基本类型的多维数组也是允许的类,此时类名遵循java.lang.ClassgetName()方法定义的规则。例如,字符串的三维数组的类名为"[[[Ljava.lang.String;"(不包括引号)。
       
      typeName - 此实例表示的开放类型的名称;不能为null或空字符串。
       
      description - 此实例表示的开放类型的人类可读描述;不能为null或空字符串。
       
      抛出:
      IllegalArgumentException - 如果classNametypeNamedescription为null或空字符串
       
      OpenDataException - 如果className不是允许的开放数据的Java类名之一
  • Method Details

    • getClassName

      public String getClassName()
      返回此开放类型描述的开放数据值的完全限定Java类名。仅允许用于开放数据值的Java类名列在ALLOWED_CLASSNAMES_LIST中。任何这些类或其对应的基本类型的多维数组也是允许的类,此时类名遵循java.lang.ClassgetName()方法定义的规则。例如,字符串的三维数组的类名为"[[[Ljava.lang.String;"(不包括引号),整数的三维数组的类名为"[[[Ljava.lang.Integer;"(不包括引号),int的三维数组的类名为"[[[I"(不包括引号)
      返回:
      类名。
    • getTypeName

      public String getTypeName()
      返回此OpenType实例的名称。
      返回:
      类型名称。
    • getDescription

      public String getDescription()
      返回此OpenType实例的文本描述。
      返回:
      描述。
    • isArray

      public boolean isArray()
      如果此开放类型描述的开放数据值是数组,则返回true,否则返回false
      返回:
      如果这是一个数组类型,则返回true。
    • isValue

      public abstract boolean isValue(Object obj)
      测试obj是否为此开放类型的值。
      参数:
      obj - 要测试有效性的对象。
      返回:
      如果obj是此开放类型的值,则返回true,否则返回false
    • equals

      public abstract boolean equals(Object obj)
      将指定的obj参数与此开放类型实例进行比较以判断是否相等。
      覆盖:
      equals 在类 Object
      参数:
      obj - 要比较的对象。
      返回:
      如果此对象和obj相等,则返回true。
      另请参阅:
    • hashCode

      public abstract int hashCode()
      从类中复制的描述: Object
      为对象返回哈希码值。此方法支持哈希表(如HashMap)等的好处。

      hashCode的一般约定是:

      • 在Java应用程序的执行期间,如果在同一对象上多次调用hashCode方法,则只要对象上用于equals比较的信息未被修改,hashCode方法必须始终一致地返回相同的整数。这个整数不需要在应用程序的一个执行到另一个执行之间保持一致。
      • 如果两个对象根据equals方法是相等的,则在这两个对象的每个对象上调用hashCode方法必须产生相同的整数结果。
      • 如果根据equals方法两个对象是不相等的,则不需要hashCode方法在这两个对象的每个对象上产生不同的整数结果。但是,程序员应该注意,对于不相等的对象产生不同的整数结果可能会提高哈希表的性能。
      覆盖:
      hashCode 在类 Object
      返回:
      此对象的哈希码值。
      另请参阅:
    • toString

      public abstract String toString()
      返回此开放类型实例的字符串表示形式。
      覆盖:
      toString 在类 Object
      返回:
      字符串表示形式。