Docs 菜单
Docs 主页
/ /
Atlas Device SDKs
/ / /

类 RealmObjectSchema

在此页面上

  • io.realm
  • 嵌套类摘要
  • 方法摘要
  • 继承方法
  • 方法详细信息
  • addField
  • addIndex
  • addPrimaryKey
  • addRealmDictionaryField
  • addRealmListField
  • addRealmObjectField
  • addRealmSetField
  • getClassName
  • getFieldNames
  • getFieldType
  • getPrimaryKey
  • hasField
  • hasIndex
  • hasPrimaryKey
  • isEmbedded
  • isNullable
  • isPrimaryKey
  • isRequired
  • removeField
  • removeIndex
  • removePrimaryKey
  • renameField
  • setClassName
  • setEmbedded
  • setNullable
  • setRequired
  • 转换(Transform)
java.lang.Object
io.realm.RealmObjectSchema

用于与给定 RealmObject 类的模式进行交互的类。 这样就可以检查、添加、删除或更改给定类的字段。如果从不可变的RealmSchema中检索此RealmObjectSchema ,则此RealmObjectSchema也将是不可变的。

提示

另请参阅:

  • io.realm.RealmMigration

修饰符和类型
类和描述
public static interface
修饰符和类型
方法和说明
public abstract RealmObjectSchema

向 RealmObject 类添加一个新的简单字段。

public abstract RealmObjectSchema
String fieldName
)

为给定字段添加索引。

public abstract RealmObjectSchema
String fieldName
)

向给定字段添加主键。

public abstract RealmObjectSchema

添加一个新字段,该字段引用具有原始值的RealmDictionary

public abstract RealmObjectSchema

添加一个新的字段,其中包含一个RealmDictionary ,其中引用了其他 Realm 模型类。

public abstract RealmObjectSchema
String fieldName,
java.lang.Class<?> primitiveType
)

添加一个新字段,该字段引用具有原始值的RealmList

public abstract RealmObjectSchema
String fieldName,
RealmObjectSchema objectSchema
)

添加一个新的字段,其中包含一个RealmList ,其中引用了其他 Realm 模型类。

public abstract RealmObjectSchema

添加引用另一个RealmObject的新字段。

public abstract RealmObjectSchema
String fieldName,
java.lang.Class<?> primitiveType
)

添加一个新字段,该字段引用具有原始值的RealmSet

public abstract RealmObjectSchema
String fieldName,
RealmObjectSchema objectSchema
)

添加一个新的字段,其中包含一个RealmSet ,该 RealmSet 引用了其他 Realm 模型类。

公共string

返回此模式表示的 RealmObject 类的名称。

公共 集合

返回此类中的所有字段。

String fieldName
)

返回底层存储引擎用于表示该字段的类型。

公共string

返回主键字段的名称。

公共布尔值
String fieldName
)

测试类中是否具有使用给定名称定义的字段。

公共布尔值
String fieldName
)

检查给定字段是否已定义索引。

公共布尔值

检查该类是否定义了主键。

公共布尔值

如果此类对象被视为“嵌入式”,则返回true

公共布尔值
String fieldName
)

检查给定字段是否可为 null,即是否允许该字段包含null值。

公共布尔值
String fieldName
)

检查给定字段是否为主键字段。

公共布尔值
String fieldName
)

检查给定字段是否为必填字段,即不允许包含null值。

public abstract RealmObjectSchema
String fieldName
)

从类中删除字段。

public abstract RealmObjectSchema
String fieldName
)

从给定字段中删除索引。

public abstract RealmObjectSchema

从此类中删除主键。

public abstract RealmObjectSchema
String currentFieldName,
String newFieldName
)

将字段从一个名称重命名为另一个名称。

public abstract RealmObjectSchema
String className
)

为此 RealmObject 类设置新名称。

public void
boolean embedded
)

将类转换为嵌入式或非嵌入式。

public abstract RealmObjectSchema
String fieldName,
boolean nullable
)

将字段设置为可为 null,即它应该能够保存null值。

public abstract RealmObjectSchema
String fieldName,
boolean required
)

将字段设置为必填字段,即不允许保存null值。

public abstract RealmObjectSchema

对当前类的每个 RealmObject 实例运行转换函数。

  • 从类 java.lang.Object 继承的方法 :getClasshashCodeequalsclonetoStringnotifynotifyAllwaitwaitwaitfinalize

public abstract RealmObjectSchema addField (
String fieldName,
)

向 RealmObject 类添加一个新的简单字段。 该类型必须是 Realm 支持的类型。 有关支持的类型列表,请参阅RealmObject 。 如果字段应允许null值,请使用装箱类型,例如,使用Integer.class而不是int.class

要添加引用其他 RealmObject 或 RealmList 的字段,请改用addRealmObjectField( string , RealmObjectSchema)addRealmListField( string , RealmObjectSchema)

参数

  • fieldName - 要添加的字段的名称。

  • fieldType — 要添加的字段类型。 有关完整列表,请参阅RealmObject

  • attributes — 此字段的属性集。

返回:

更新后的模式。

抛出异常

public abstract RealmObjectSchema addIndex (
String fieldName
)

为给定字段添加索引。 这相当于在字段上添加io.realm.annotations.Index注解。

参数

  • fieldName — 要添加索引的字段。

返回:

更新后的模式。

抛出异常

String fieldName
)

向给定字段添加主键。 这与在字段上添加io.realm.annotations.PrimaryKey注解相同。 此外,这还会隐式向该字段添加io.realm.annotations.Index注解。

参数

  • fieldName - 要设置为主键的字段。

返回:

更新后的模式。

抛出异常

String fieldName,
java.lang.Class<?> primitiveType
)

添加一个新字段,该字段引用具有原始值的RealmDictionary 。 有关支持的类型列表,请参阅RealmObject

元素的可空性是通过使用正确的类来定义的,例如, Integer.class而不是int.class 。 或者可以使用setRequired( string , boolean)

示例:

// Defines the dictionary of Strings as being non null.
RealmObjectSchema schema = schema.create("Person")
.addRealmDictionaryField("parentAndChild", String.class)
.setRequired("parentAndChild", true)

如果列表包含对其他Realm类的引用,请改用addRealmDictionaryField( string , RealmObjectSchema)

参数

  • fieldName - 要添加的字段的名称。

  • primitiveType - 数组中简单类型的元素。

返回:

更新后的模式。

抛出异常

String fieldName,
RealmObjectSchema objectSchema
)

添加一个新的字段,其中包含一个RealmDictionary ,其中引用了其他 Realm 模型类。

如果字典包含基元类型,请改用addRealmDictionaryField( string , Class)

参数

  • fieldName - 要添加的字段的名称。

  • objectSchema — 所引用的 Realm 类型的模式。

返回:

更新后的模式。

抛出异常

String fieldName,
java.lang.Class<?> primitiveType
)

添加一个新字段,该字段引用具有原始值的RealmList 。 有关支持的类型列表,请参阅RealmObject

元素的可空性是通过使用正确的类来定义的,例如, Integer.class而不是int.class 。 或者可以使用setRequired( string , boolean)

示例:

// Defines the list of Strings as being non null.
RealmObjectSchema schema = schema.create("Person")
.addRealmListField("children", String.class)
.setRequired("children", true)

如果列表包含对其他Realm类的引用,请改用addRealmListField( string , RealmObjectSchema)

参数

  • fieldName - 要添加的字段的名称。

  • primitiveType - 数组中简单类型的元素。

返回:

更新后的模式。

抛出异常

String fieldName,
RealmObjectSchema objectSchema
)

添加一个新的字段,其中包含一个RealmList ,其中引用了其他 Realm 模型类。

如果列表包含基元类型,请改用addRealmListField( string , Class)

参数

  • fieldName - 要添加的字段的名称。

  • objectSchema — 所引用的 Realm 类型的模式。

返回:

更新后的模式。

抛出异常

String fieldName,
RealmObjectSchema objectSchema
)

添加引用另一个RealmObject的新字段。

参数

  • fieldName - 要添加的字段的名称。

  • objectSchema — 所引用的 Realm 类型的模式。

返回:

更新后的模式。

抛出异常

String fieldName,
java.lang.Class<?> primitiveType
)

添加一个新字段,该字段引用具有原始值的RealmSet 。 有关支持的类型列表,请参阅RealmObject

元素的可空性是通过使用正确的类来定义的,例如, Integer.class而不是int.class 。 或者可以使用setRequired( string , boolean)

示例:

// Defines the set of Strings as being non null.
RealmObjectSchema schema = schema.create("Person")
.addRealmSetField("children", String.class)
.setRequired("children", true)

如果列表包含对其他Realm类的引用,请改用addRealmSetField( string , RealmObjectSchema)

参数

  • fieldName - 要添加的字段的名称。

  • primitiveType - 数组中简单类型的元素。

返回:

更新后的模式。

抛出异常

String fieldName,
RealmObjectSchema objectSchema
)

添加一个新的字段,其中包含一个RealmSet ,该 RealmSet 引用了其他 Realm 模型类。

如果该设立包含基元类型,请改用addRealmSetField( string , Class)

参数

  • fieldName - 要添加的字段的名称。

  • objectSchema — 所引用的 Realm 类型的模式。

返回:

更新后的模式。

抛出异常

返回此模式表示的 RealmObject 类的名称。

  • 使用普通Realm时,此名称与RealmObject类相同。

  • 使用DynamicRealm时,这是在所有需要类名的 API 方法中使用的名称。

返回:

此模式表示的 RealmObject 类的名称。

抛出异常

public Set getFieldNames ()

返回此类中的所有字段。

返回:

该类中所有字段的列表。

返回底层存储引擎用于表示该字段的类型。

参数

  • fieldName — 目标字段的名称。

返回:

Realm 用来表示该字段的基础类型。

返回主键字段的名称。

返回:

主键字段的名称。

抛出异常

public boolean hasField (
String fieldName
)

测试类中是否具有使用给定名称定义的字段。

参数

  • fieldName - 要测试的字段名称。

返回:

true 如果该字段存在,否则为false

public boolean hasIndex (
String fieldName
)

检查给定字段是否已定义索引。

参数

  • fieldName - 要检查的现有字段名称。

返回:

true 如果字段已建立索引,则返回false

抛出异常

提示

另请参阅:

public boolean hasPrimaryKey ()

检查该类是否定义了主键。

返回:

true 如果已定义主键,则为false

提示

另请参阅:

public boolean isEmbedded ()

如果此类对象被视为“嵌入式”,则返回true 。有关详细信息,请参阅RealmClass.embedded()

返回:

true 如果嵌入了此类对象。 如果没有,请false

public boolean isNullable (
String fieldName
)

检查给定字段是否可为 null,即是否允许该字段包含null值。

参数

  • fieldName - 要检查的字段。

返回:

true 如果需要,否则为false

抛出异常

提示

另请参阅:

public boolean isPrimaryKey (
String fieldName
)

检查给定字段是否为主键字段。

参数

  • fieldName - 要检查的字段。

返回:

true 如果是主键字段,则为false

抛出异常

提示

另请参阅:

public boolean isRequired (
String fieldName
)

检查给定字段是否为必填字段,即不允许包含null值。

参数

  • fieldName - 要检查的字段。

返回:

true 如果需要,否则为false

抛出异常

提示

另请参阅:

public abstract RealmObjectSchema removeField (
String fieldName
)

从类中删除字段。

参数

  • fieldName - 要删除的字段名称。

返回:

更新后的模式。

抛出异常

public abstract RealmObjectSchema removeIndex (
String fieldName
)

从给定字段中删除索引。 这与删除字段上的@Index注解相同。

参数

  • fieldName — 要从中删除索引的字段。

返回:

更新后的模式。

抛出异常

从此类中删除主键。 这与从类中删除io.realm.annotations.PrimaryKey注解相同。 此外,这还会隐式从字段中删除io.realm.annotations.Index注解。

返回:

更新后的模式。

抛出异常

public abstract RealmObjectSchema renameField (
String currentFieldName,
String newFieldName
)

将字段从一个名称重命名为另一个名称。

参数

  • currentFieldName - 要重命名的字段名称。

  • newFieldName - 新字段名称。

返回:

更新后的模式。

抛出异常

String className
)

为此 RealmObject 类设置新名称。 这相当于对其进行重命名。

参数

  • className - 此类的新名称。

抛出异常

public void setEmbedded (
boolean embedded
)

将类转换为嵌入式或非嵌入式。只有在满足以下不变量的情况下,才能将类标记为嵌入式:

  • 该类不允许定义主键。

  • 此类型的所有现有对象必须有一个且只有一个父对象指向它。 如果0 个或超过1 个对象具有对即将被标记为嵌入式对象的引用,则 抛出 IllegalStateException 将被抛出。

抛出异常

提示

另请参阅:

public abstract RealmObjectSchema setNullable (
String fieldName,
boolean nullable
)

将字段设置为可为 null,即它应该能够保存null值。 这相当于在基元类型及其盒装变体之间切换,例如从int切换到Integer

如果指定字段的类型是值列表(而不是RealmObject ),则指定的可空性仅影响其元素,而不影响字段本身。 值列表本身始终不可为空。

参数

  • fieldName - 类中的字段名称。

  • nullable - 如果字段应可为空,则为true ,否则为false

返回:

更新后的模式。

抛出异常

public abstract RealmObjectSchema setRequired (
String fieldName,
boolean required
)

将字段设置为必填字段,即不允许保存null值。 这相当于在装箱类型及其原始变体之间切换,例如从Integer切换到int

如果指定字段的类型是值列表(而不是RealmObject ),则指定的可空性仅影响其元素,而不影响字段本身。 值列表本身始终不可为空。

参数

  • fieldName - 类中的字段名称。

  • required - 如果字段为必填字段,则为true ,否则为false

返回:

更新后的模式。

抛出异常

提示

另请参阅:

对当前类的每个 RealmObject 实例运行转换函数。 该对象将表示为DynamicRealmObject

无法保证对象的返回顺序。

参数

  • function - 转换函数。

返回:

此模式。

抛出异常

后退

RealmObjectChangeListener