teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追加

2021/12/09 03:22

投稿

jimbe
jimbe

スコア13357

answer CHANGED
@@ -5,4 +5,9 @@
5
5
  findAll は RealmResults<E> オブジェクトを返すメソッドで、今回
6
6
  "E" は "user" ですので a は RealmResults<user> 型であり、 String 型ではありません。
7
7
  従いまして、 findAll で取得したオブジェクトをそのまま表示や比較に使用するということは意味が有りません。
8
- 要素である user オブジェクトを取り出し、さらにその user オブジェクトから name フィールド値を取り出して扱う必要があるでしょう。
8
+ 要素である user オブジェクトを取り出し、さらにその user オブジェクトから name フィールド値を取り出して扱う必要があるでしょう。
9
+
10
+ なお、オブジェクトの表示に関しましては、「表示の見た目は実際の中身では無い」ということもご理解されていないと、今後ご苦労されると思います。
11
+ Int や String は、表示すると中身がそのまま表示されますので、全てのオブジェクトがそうだと思ってしまうかもしれませんが、そうではありません。
12
+ 全てのオブジェクトは toString():String メソッドを持ち、オブジェクトを文字列化する際にはそれが呼ばれます。 toString() を明示的に定義していない場合は、 Object クラスの実装が用いられます。
13
+ user クラスは継承可能("open")であり RealmObject を継承しているため、Realm によってどこかで toString をオーバーライドされているかもしれませんが、何にしても、 (文字列化しての)表示が例えば「name="ABC"」だからといって name フィールドに "name=\"ABC\"" と入っているわけでは無く、toString() メソッドによってそのようにフォーマットされている…とご理解ください。