2017-12-08 5 views
-2

Sind diese beiden im Kontext der Raumdatenbank Entity austauschbar, oder, wenn nicht, was sind die Unterschiede zwischen ihnen?Android Room: @Ignore vs Transient

+0

Ich kann keinen Hinweis auf vorübergehende im Raum finden. https://developer.android.com/training/data-storage/room/defining-data.html – joao86

+0

transient ist das integrierte Keyword, während @ignore von Room – Zoe

+0

@ joao86 https://docs.oracle.com/javase hinzugefügt wird /specs/jls/se7/html/jls-8.html#jls-8.3.1.3 https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.jvm/-transient/index.html – Pavlus

Antwort

2

@Ignore ist eine raumspezifische Anmerkung, die besagt, dass Room dieses Feld oder diese Methode ignorieren soll.

ist ein Java-Konstrukt, das angibt, dass this field should not be serialized in standard Java serialization. Room happens to treat this similarly to @Ignore by default. Meistens gibt es das für Fälle, in denen Sie von einer Klasse erben, die verwendet und Sie diese Klasse nicht kontrollieren (z. B. aus einer Bibliothek).

Für Ihren eigenen Code, wenn Sie nicht Java-Serialisierung verwenden, empfehle ich, mit @Ignore für die Felder zu bleiben. transient ist kein verfügbares Schlüsselwort für eine Methode. Um Room zu sagen, bestimmte Konstruktoren zu ignorieren, haben Sie keine andere Wahl als @Ignore zu verwenden.