T
-这类的实例必须有java类型描述。例如,
SimpleType.INTEGER
是
SimpleType<Integer>
是
OpenType<Integer>
的子类,这意味着一个属性,参数,返回值,或被描述为一个
SimpleType.INTEGER
必须
Integer
java类型。
public abstract class OpenType<T> extends Object implements Serializable
OpenType
类是所有的类描述开放数据值的实际开放式父抽象类。
一个开放式定义:
ALLOWED_CLASSNAMES_LIST
),Modifier and Type | Field and Description |
---|---|
static String[] |
ALLOWED_CLASSNAMES
过时的。
|
static List<String> |
ALLOWED_CLASSNAMES_LIST
的完全限定名的java类允许开放数据值的列表。
|
Modifier | Constructor and Description |
---|---|
protected |
OpenType(String className, String typeName, String description)
构建了一个
OpenType 实例(实际上是一个类的实例作为
OpenType 是抽象的),检查给定参数的有效性。
|
Modifier and Type | Method and Description |
---|---|
abstract boolean |
equals(Object obj)
比较
obj 参数指定这个开放式实例为平等。
|
String |
getClassName()
返回完全限定java类名的开放数据开放类型描述。
|
String |
getDescription()
返回该
OpenType 实例的文本描述。
|
String |
getTypeName()
返回该
OpenType 实例的名称。
|
abstract int |
hashCode()
返回一个对象的哈希代码值。
|
boolean |
isArray()
返回
true 如果开放数据值这个开放式描述数组、
false 否则。
|
abstract boolean |
isValue(Object obj)
测试是否
obj是开放型的值。
|
abstract String |
toString()
返回此打开类型实例的字符串表示形式。
|
public static final List<String> ALLOWED_CLASSNAMES_LIST
allowed_classnames_list = {“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。”,“java BigDecimal。数学。”,“java。数学。BigInteger”,“java util的日期。”,“javax.管理对象”,复合数据getname()。类,表格数据。类getname() };
@Deprecated public static final String[] ALLOWED_CLASSNAMES
ALLOWED_CLASSNAMES_LIST
相反。
protected OpenType(String className, String typeName, String description) throws OpenDataException
OpenType
实例(实际上是一个类的实例作为
OpenType
是抽象的),检查给定参数的有效性。每个参数的有效性约束如下所述。
className
-完全限定java类名的开放数据开放类型描述。有效的java类名允许开放数据值列在
ALLOWED_CLASSNAMES_LIST
。多维数组的类或其相应的原始类型的任何一个也是允许的,在这种情况下,类的名称遵循
java.lang.Class
方法
getName()
定义的规则。例如,一个三维数组的字符串为班级名称”
[[[Ljava.lang.String;
”(没有引号)。
typeName
给予开放式的这个实例的名称代表;不能是null或空字符串。
description
-开放式的这个实例代表着人类可读的描述;不能是null或空字符串。
IllegalArgumentException
-如果
类名,
typename或
描述是null或空字符串
OpenDataException
-如果
类名不允许使用java类名为开放数据
public String getClassName()
ALLOWED_CLASSNAMES_LIST
开放数据的价值。多维数组的类或其相应的原始类型的任何一个也是允许的,在这种情况下,类的名称遵循
java.lang.Class
方法
getName()
定义的规则。例如,一个三维数组的字符串为班级名称”
[[[Ljava.lang.String;
”(没有引号),3维数组的整数类的名字“
[[[Ljava.lang.Integer;
”(没有引号),和一个三维数组int有班级名称”
[[[I
”(没有引号)
public String getTypeName()
OpenType
实例的名称。
public String getDescription()
OpenType
实例的文本描述。
public boolean isArray()
true
如果开放数据值这个开放式描述数组、
false
否则。
public abstract boolean isValue(Object obj)
obj
要测试的有效性的目标。
true
如果
obj是开放型的值,
false
否则。
public abstract boolean equals(Object obj)
obj
参数指定这个开放式实例为平等。
equals
方法重写,继承类
Object
obj
-对象比较。
obj
相等。
Object.hashCode()
,
HashMap
public abstract int hashCode()
Object
HashMap
利益支持。
对hashCode
一般合同:
hashCode
方法总是返回相同的整数,没有提供信息用于equals
比较的对象被修改。这个整数不需要保持一致,从一个应用程序的一个执行到另一个执行相同的应用程序。equals(Object)
法两个对象是相等的,那么调用hashCode
方法每一个对象必须产生相同的整数结果。Object.equals(java.lang.Object)
法两个对象是不平等的,然后调用hashCode
方法每一个对象必须产生不同的整数结果。然而,程序员应该意识到,产生不同的整数结果的不平等的对象可能会提高哈希表的性能。尽合理的切实可行,由类Object
定义hashCode方法返回不同的对象不同的整数。(这通常是通过将该对象的内部地址转换成一个整数,但这不是实现实现技术的™java编程语言。要求)
hashCode
方法重写,继承类
Object
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.