Docs Menu
Docs Home
/ /
Atlas Device SDK
/ / /

RealmNameingPolicy を列挙する

項目一覧

  • io.realm.annotations
  • 列挙定数の概要
  • メソッドの概要
  • 継承されたメソッド
  • 列挙定数の詳細
  • CAMEL_CASE
  • IDENTITY
  • LOWER_CASE_WITH_UNDERSCORES
  • NO_POLICY
  • PASCAL_CASE
  • メソッドの詳細
  • valueOf
  • values
java.lang.Object
io.realm.annotations.RealmNamingPolicy

この列挙型は、クラス名とフィールド名を Java で使用されるものから Realm ファイルの内部で使用される名前にマッピングする方法を定義します。これが役立つ例:

  • 同じシンプル名で、パッケージが異なる 2 つのモデル クラスをサポートします。

  • 命名規則が異なるため、複数のプラットフォームにまたがるスキーマの操作を容易にするため。

  • Realm によって強制される 57 文字の制限よりも長い Java クラス名を使用します。

  • アプリユーザーに移行プロセスを強制せずに Java でフィールド名を変更します。

ポリシーが適用される場所に応じて、セマンティクスは若干異なります。

  • RealmModule.ClassNamePolicyに適用された場合 そのモジュールのすべてのクラス部分が影響を受けます。 クラスが複数のモジュールの一部である場合は、両方のモジュールに同じ命名ポリシーを適用する必要があります。そうでない場合は、エラーがスローされます。

  • RealmModle.fieldNamePolicyに適用された場合 このモジュールのすべてのクラスのすべての永続的なフィールドが影響を受けます。

  • RealmClass.fieldNamePolicyに適用されると、そのクラスのすべてのフィールドが影響を受けます。 これにより、モジュールに指定されたフィールド命名ポリシーが上書きされます。

以下の例は、次のとおりです。

@RealmClass(name = "__person", fieldNamingPolicy = RealmNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
public class Person implements RealmModel { // is converted to "__person" internally
public string firstName; // Is converted to "first_name" internally
}

Java モデル クラスで使用される名前とは異なる内部名を選択する場合、次の影響があります。

  • DynamicRealmのクエリでは、内部名を使用する必要があります。 通常のRealmインスタンスに対するクエリでは、Java クラスで定義されている名前を引き続き使用する必要があります。

  • 移行では、クラスとフィールドを作成するときに内部名を使用する必要があります。

  • スキーマ エラーが報告された場合は、内部名が使用されます。

Java 変数名を自動的に変換する際、各変数名は単語のリストに分割して正規化され、ターゲット形式のルールを使用して結合されます。 次の人間は、「単語」を構成する要素を決定するために使用されます。

  1. _または$が発生したたび。 たとえば、"_FirstName"、"_First_Name"、"$First$Name" はすべて "First" と "Name" になります。

  2. 小文字から大文字と小文字に 切り替える たびにおよび string 。例としては、"FirstName" が「First」と「Name」になります。

  3. 複数の大文字から小文字の に切り替えるたび。 最後の大文字は、次の単語の一部であると想定されます。 これは、 characters.isUpperCate(int) を使用することで識別されますおよび string 。例としては、"FIRSTName" で、これは "FIRST" と "Name" になります。

  4. イメージの一部の文字は大文字でも小文字でもないため、現在の単語の一部になります。 例としては、"myReader" と "MyReader" が挙げられます。これらは両方とも 1 つの単語として扱われます。

  5. ハンガリー表記、つまり小文字の "m" で始まり、その後に大文字の文字が続く変数名は切り捨てられ、単語の一部とは見なされません。 例としては、"mFirstName" と "mFIRSTName" で、これは "First" と "Name" になります。

内部名を変更しても、JSON からのデータのインポートには影響しないことに注意してください。 JSON データは、Realm Java クラスで定義されている名前に従う必要があります。

Moshi、GSON、Jackson などの標準ライブラリを使用して JSON を解析する場合は、これらのライブラリが JSON から Java への変換を定義し、内部 Realm 名を設定すると、Java から Realm ファイルへの変換が定義されることを覚えておいてください。

つまり、これらのライブラリを使用して JSON から Realm にデータをインポートする場合は、JSON パーサー ライブラリと Realm の両方から注釈を提供する必要があります。

Moshi を使用すると、次のようになります。

public class Person extends RealmObject {
@Json(name = "first_name") // Name used in JSON input.
@RealmField(name = "first_name") // Name used internally in the Realm file.
public string firstName; // name used in Java
}

Tip

以下も参照してください。

列挙定数と説明

RAMEL_CASE

Java モデル クラスの名前はキャメルケースに変換され、

IDity

Java モデル クラス内の 名前は、内部的に として使用されます。

Lower_CASE_With_ENDERS

Java モデル クラス内の は、各単語が_で区切られた小文字に変換されます。

NO_ポリシー

ポリシーは適用されません。

PAGER_CASE

Java モデル クラス内の名前はパスカルケースに変換されます。

修飾子と型
メソッドと説明
公開静的RealmNameingPolicy
公開静的RealmNameingPolicy
  • クラス java.lang.Object から継承されたメソッド :getClasshashCodeequalsclonetoStringnotifynotifyAllwaitwaitwaitfinalize

  • クラス java.lang.Enum から継承されたメソッド :nameordinaltoStringequalshashCodeclonecompareTogetDeclaringClassvalueOffinalize

public static final RealmNamingPolicy

Java モデル クラスの名前はキャメルケースに変換されます。つまり、すべての単語が、最初の単語の最初の文字は小文字になり、後続のすべての単語の最初の文字は大文字と小文字で結合されます。 これは、Java、 Kotlin、Swift、JavaScript の標準的な命名スキーマです。例: "firstName"、"FirstName"、"mFirstName"、"FIRST_NAME"、"FirstName" はすべて "firstName" になります。

public static final RealmNamingPolicy

Java モデル クラス内の 名前は、内部的に として使用されます。

public static final RealmNamingPolicy

Java モデル クラス内の は、各単語が_で区切られた小文字に変換されます。 これは、C++ のデフォルトの命名スキームです。

例: "firstName"、"FirstName"、"mFirstName"、"FIRST_NAME"、"First$Name" はすべて "first_name" になります。

public static final RealmNamingPolicy

ポリシーは適用されません。 このポリシーは、親要素に設定されたポリシーを上書きすることはありません。たとえば、 RealmClass.fieldNamePolicyに設定されている場合、モジュール ポリシーはフィールド名に引き続き適用されます。

2 つのモジュールがポリシーで相違し、いずれか 1 つがNO_POLICYである場合、エラーはスローされることなくもう 1 つが選択されます。

このポリシーはデフォルトです。

public static final RealmNamingPolicy

Java モデル クラスの名前はパスカルケースに変換されます。つまり、すべての単語が大文字の最初の文字で結合されます。 これは、.NET のデフォルトの命名スキームです。例: "firstName"、"FirstName"、"mFirstName"、"FIRST_NAME"、"First$Name" はすべて "FirstName" になります。

public static RealmNamingPolicy valueOf (
String name
)
public static RealmNamingPolicy values ()

戻る

RealmModule