클래스 RealmObject
이 페이지의 내용
io.realm
구현된 인터페이스:
Realm에서는 RealmObject를 하위 클래스로 분류하고 지속할 필드를 추가하여 RealmObject 클래스를 정의합니다. 그런 다음 Realm 내에서 객체를 생성하고 RealmObject 클래스를 직접 사용하는 대신 사용자 지정 하위 클래스를 사용합니다. 주석 프로세서가 RealmObject 하위 클래스에 대한 프록시 클래스를 생성합니다.
지원되는 필드 데이터 유형은 다음과 같습니다.
boolean/Boolean
짧은/단어
int/Integer
long/Long
float/Float
더블/더블
byte[]
문자열
날짜
UUID
org.bson.types.Decimal128
org.bson.types.ObjectId
모든 RealmObject 하위 클래스
RealmList
RealmDictionary
short
, int
및 long
유형은 Realm 내에 저장할 때 long
에 매핑됩니다.
RealmObject에 적용되는 유일한 제한 사항은 필드가 최종 필드나 변동 필드를 허용하지 않는다는 것입니다. 공개 필드뿐만 아니라 모든 메서드가 허용됩니다. 사용자 지정 생성자를 제공할 때는 인수가 없는 공용 생성자를 선언해야 합니다.
io.realm.annotations.Igore 주석이 달린 필드에는 이러한 제한이 없으며 getter나 setter가 필요하지 않습니다.
Realm은 io.realm.annotations.Index 주석이 달린 필드에 대한 인덱스를 생성합니다. 이렇게 하면 쿼리 속도가 빨라지지만 삽입 및 업데이트에는 부정적인 영향을 미칩니다.
RealmObject는 서로 다른 스레드 간에 전달할 수 없습니다.
생성자
생성자 및 설명 |
---|
RealmObject () |
메서드 요약
수정자 및 유형 | 메서드 및 설명 |
---|---|
public static void | 값 필드 또는 참고 RealmObject 필드가 변경되거나 RealmList 필드 자체가 변경되면 트리거되는 변경 리스너를 RealmObject에 추가합니다. |
public static void | RealmObject에 변경 리스너를 추가하여 변경 사항에 대한 자세한 정보를 가져옵니다. |
public final void | 값 필드 또는 참고 RealmObject 필드가 변경되거나 RealmList 필드 자체가 변경되면 트리거되는 변경 리스너를 이 RealmObject에 추가합니다. |
public final void | 이 RealmObject에 변경 리스너를 추가하여 변경 사항에 대한 자세한 정보를 가져옵니다. |
public static <any> | 이 RealmObject의 변경 사항을 모니터링하는 Rx Observable을 반환합니다. |
public final <any> | asChangesetObservable <E >() 이 RealmObject의 변경 사항을 모니터링하는 Rx Observable을 반환합니다. |
public static <any> | 이 RealmObject의 변경 사항을 모니터링하는 RxJava Flowable을 반환합니다. |
public final <any> | asFlowable <E >() 이 RealmObject의 변경 사항을 모니터링하는 RxJava Flowable을 반환합니다. |
public static void | 현재 연결된 Realm에서 객체를 삭제합니다. |
public final void | 현재 연결된 Realm에서 객체를 삭제합니다. |
public static E | 이 객체의 동결된 스냅샷을 반환합니다. |
public final E | freeze <E >() 이 객체의 동결된 스냅샷을 반환합니다. |
public static Realm |
|
public Realm | getRealm () 이 RealmObject가 속한 Realm 인스턴스 를 반환합니다. |
public static boolean | 이 RealmObject가 동결되었는지 여부를 반환합니다. |
public final boolean | isFrozen () 이 RealmObject가 동결되었는지 여부를 반환합니다. |
public static boolean | 이 RealmObject를 찾는 데 사용된 쿼리가 완료되었는지 확인합니다. |
public final boolean | isLoaded () 이 RealmObject를 찾는 데 사용된 쿼리가 완료되었는지 확인합니다. |
public static boolean | 이 객체가 Realm에서 managed 확인합니다. |
공개 부울 | isManaged () 이 객체가 Realm에서 managed 확인합니다. |
public static boolean | RealmObject가 여전히 사용 가능한지 확인합니다, 즉 RealmObject가 삭제되지 않았거나 io.realm.Realm 이 닫히지 않았는지 확인합니다. |
public final boolean | isValid () RealmObject가 여전히 사용 가능한지 확인합니다, 즉 RealmObject가 삭제되지 않았거나 io.realm.Realm 이 닫히지 않았는지 확인합니다. |
public static boolean | 비동기 쿼리를 차단합니다. |
public final boolean | load () 비동기 쿼리를 차단합니다. |
public static void | 지정된 RealmObject에서 등록된 모든 리스너를 제거합니다. |
public final void | 등록된 모든 리스너를 제거합니다. |
public static void | 지정된 RealmObject에 이전에 등록된 리스너를 제거합니다. |
public static void | 지정된 RealmObject에 이전에 등록된 리스너를 제거합니다. |
public final void | 이전에 등록된 리스너를 제거합니다. |
public final void | 이전에 등록된 리스너를 제거합니다. |
상속된 메서드
클래스 java.lang.Object 에서 상속된 메서드 :
getClass
,hashCode
,equals
,clone
,toString
,notify
,notifyAll
,wait
,wait
,wait
,finalize
생성자 세부 정보
public RealmObject () |
---|
메서드 세부 정보
addChangeListener
값 필드 또는 참고 RealmObject 필드가 변경되거나 RealmList 필드 자체가 변경되는 경우 트리거되는 변경 리스너를 RealmObject에 추가합니다. 변경 리스너를 등록해도 기본 RealmObject가 가비지 수집되는 것을 방지할 수 없습니다. RealmObject가 가비지 수집되면 변경 리스너 트리거가 중지됩니다. 이를 방지하려면 클래스 변수와 같이 적절한 길이로 강력한 참고를 유지하세요.
매개변수
스로우
|
RealmObject에 변경 리스너를 추가하여 변경 사항에 대한 자세한 정보를 가져옵니다. 값 필드 또는 참고 RealmObject 필드가 변경되거나 RealmList 필드 자체가 변경되면 리스너가 트리거됩니다. 변경 리스너를 등록해도 기본 RealmObject가 가비지 수집되는 것을 방지할 수는 없습니다. RealmObject가 가비지 수집되면 변경 리스너 트리거가 중지됩니다. 이를 방지하려면 클래스 변수와 같이 적절한 길이로 강력한 참고를 유지하세요.
매개변수
스로우
|
값 필드 또는 참고 RealmObject 필드가 변경되거나 RealmList 필드 자체가 변경되는 경우 트리거되는 변경 리스너를 RealmObject에 추가합니다. 변경 리스너를 등록해도 기본 RealmObject가 가비지 수집되는 것을 방지할 수 없습니다. RealmObject가 가비지 수집되면 변경 리스너 트리거가 중지됩니다. 이를 방지하려면 클래스 변수와 같이 적절한 길이로 강력한 참고를 유지하세요.
매개변수
스로우
|
이 RealmObject에 변경 리스너를 추가하여 변경 사항에 대한 자세한 정보를 가져옵니다. 값 필드 또는 참고 RealmObject 필드가 변경되거나 RealmList 필드 자체가 변경되면 리스너가 트리거됩니다. 변경 리스너를 등록해도 기본 RealmObject가 가비지 수집되는 것을 방지할 수는 없습니다. RealmObject가 가비지 수집되면 변경 리스너 트리거가 중지됩니다. 이를 방지하려면 클래스 변수와 같이 적절한 길이로 강력한 참고를 유지하세요.
매개변수
스로우
|
asChangesetObservable
이 RealmObject의 변경 사항을 모니터링하는 Rx Observable을 반환합니다. 구독 시 현재 RealmObject를 방출합니다. RealmObject가 업데이트될 때마다 RealmObject와 ObjectChangeSet 로 구성된 쌍이 전송됩니다. RealmObject가 처음 방출될 때 변경 세트는 RealmObject는 업데이트될 때마다 계속 방출되며 Realm Observable에서 방출된 항목은 동결됩니다(freeze() 참조) . 즉, 변경할 수 없으며 모든 스레드에서 읽을 수 있습니다. Realm Observable은 항상 라이브 Realm을 보유한 스레드에서 항목을 방출합니다. 즉, 추가 처리를 수행해야 하는 경우 계산 스케줄러에서 값을 관찰하는 것이 좋습니다.
매개변수
반환
스로우
|
public final <any> asChangesetObservable <E >() | |||||
---|---|---|---|---|---|
이 RealmObject의 변경 사항을 모니터링하는 Rx Observable을 반환합니다. 구독 시 현재 RealmObject를 방출합니다. RealmObject가 업데이트될 때마다 RealmObject와 ObjectChangeSet 로 구성된 쌍이 전송됩니다. RealmObject가 처음 방출될 때 변경 세트는 RealmObject는 업데이트될 때마다 계속 방출되며 Realm Observable에서 방출된 항목은 동결됩니다(freeze() 참조) . 즉, 변경할 수 없으며 모든 스레드에서 읽을 수 있습니다. Realm Observable은 항상 라이브 Realm을 보유한 스레드에서 항목을 방출합니다. 즉, 추가 처리를 수행해야 하는 경우 계산 스케줄러에서 값을 관찰하는 것이 좋습니다.
반환
스로우
|
asFlowable
이 RealmObject의 변경 사항을 모니터링하는 RxJava Flowable을 반환합니다. 구독 시 현재 객체를 방출합니다. RealmObject가 업데이트될 때마다 객체 업데이트가 계속 내보내지며 RealmObject 옵저버블을 연결할 때 Realm Flowables에서 방출된 항목은 동결됩니다(freeze() 참조) . 즉, 변경할 수 없으며 모든 스레드에서 읽을 수 있습니다. Realm Flowable은 항상 라이브 Realm을 보유한 스레드에서 항목을 방출합니다. 즉, 추가 처리를 수행해야 하는 경우 계산 스케줄러에서 값을 관찰하는 것이 좋습니다.
매개변수
반환
스로우
|
public final <any> asFlowable <E >() | |||||||||
---|---|---|---|---|---|---|---|---|---|
이 RealmObject의 변경 사항을 모니터링하는 RxJava Flowable을 반환합니다. 구독 시 현재 객체를 방출합니다. 객체 업데이트는 RealmObject가 업데이트될 때마다 계속 내보내지며 RealmObject 플로우어블을 연결할 때 Realm Flowables에서 방출된 항목은 동결됩니다(freeze() 참조) . 즉, 변경할 수 없으며 모든 스레드에서 읽을 수 있습니다. Realm Flowable은 항상 라이브 Realm을 보유한 스레드에서 항목을 방출합니다. 즉, 추가 처리를 수행해야 하는 경우 계산 스케줄러에서 값을 관찰하는 것이 좋습니다.
유형 매개변수
반환
스로우
|
deleteFromRealm
현재 연결된 Realm에서 객체를 삭제합니다. 이 메서드가 호출되면 객체는 유효하지 않으며 해당 객체에 대해 수행된 모든 작업(읽기 또는 쓰기)이 실패하고 잘못된 상태가 발생합니다. 스로우 |
public final void deleteFromRealm () |
---|
현재 연결된 Realm에서 객체를 삭제합니다. 이 메서드가 호출되면 객체는 유효하지 않으며 해당 객체에 대해 수행된 모든 작업(읽기 또는 쓰기)이 실패하고 불법적인 상태가 발생합니다. 스로우 |
동결
이 객체의 동결된 스냅샷을 반환합니다. 동결된 사본은 불법적인 상태 예외( IllegalStateException )를 발생시키지 않고 모든 스레드에서 읽고 쿼리할 수 있습니다. . RealmObject를 동결하면 자체 라이프사이클이 있는 동결된 Realm도 생성되지만, 원래 collection을 생성한 라이브 Realm이 완전히 닫힌 경우(즉, (모든 스레드의 모든 인스턴스가 닫힙니다), 동결된 Realm과 객체도 닫힙니다. 동결된 객체는 정상적으로 쿼리할 수 있지만 어떤 방식으로든 이를 변경하려고 하거나 리스너를 등록하려고 하면 IllegalStateException 이 발생합니다. . 참고: 버전이 다른 많은 수의 동결된 객체를 활성 상태로 유지하면 Realm의 파일 크기에 부정적인 영향을 미칠 수 있습니다. 이러한 상황을 방지하려면 RealmConfiguration.Builder.maxNumberOfActiveVersions(long) 을 설정할 수 있습니다. 반환 이 객체의 동결된 복사본입니다. 스로우 |
public final E freeze <E >() |
---|
이 객체의 동결된 스냅샷을 반환합니다. 동결된 사본은 불법적인 상태 예외( IllegalStateException )를 발생시키지 않고 모든 스레드에서 읽고 쿼리할 수 있습니다. . RealmObject를 동결하면 자체 라이프사이클이 있는 동결된 Realm도 생성되지만, 원래 collection을 생성한 라이브 Realm이 완전히 닫힌 경우(즉, (모든 스레드의 모든 인스턴스가 닫힙니다), 동결된 Realm과 객체도 닫힙니다. 동결된 객체는 정상적으로 쿼리할 수 있지만 어떤 방식으로든 이를 변경하려고 하거나 리스너를 등록하려고 하면 IllegalStateException 이 발생합니다. . 참고: 버전이 다른 많은 수의 동결된 객체를 활성 상태로 유지하면 Realm의 파일 크기에 부정적인 영향을 미칠 수 있습니다. 이러한 상황을 방지하려면 RealmConfiguration.Builder.maxNumberOfActiveVersions(long) 을 설정할 수 있습니다. 반환 이 객체의 동결된 복사본입니다. 스로우 |
getRealm
Realm.close() 를 호출 해서는 안 됩니다. 반환된 인스턴스에 대해. 매개변수
반환
스로우
|
이 RealmObject가 속한 Realm 인스턴스 를 반환합니다. Realm.close() 를 호출 해서는 안 됩니다. 반환된 인스턴스에 대해. 반환 이 객체가 속한 Realm 인스턴스이거나 이 객체가 관리되지 않는 경우 스로우
|
IsFrozen
isLoaded
이 RealmObject를 찾는 데 사용된 쿼리 가 완료되었는지 확인합니다.RealmQuery.findFirstAsync() 와 같은 비동기 메서드는 RealmQuery 의 향후 결과를 나타내는 RealmObject 를 반환합니다. java.util.concurrent.Future 이와 관련하여.
"Null" 객체는
동기 RealmObject는 정의상 블로킹이므로 이 메서드는 항상 매개변수
반환
|
public final boolean isLoaded () | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
이 RealmObject를 찾는 데 사용된 쿼리 가 완료되었는지 확인합니다.RealmQuery.findFirstAsync() 와 같은 비동기 메서드는 RealmQuery 의 향후 결과를 나타내는 RealmObject 를 반환합니다. java.util.concurrent.Future 이와 관련하여.
"Null" 객체는
동기 RealmObject는 정의상 블로킹이므로 이 메서드는 항상 반환
|
isManaged
이 객체가 Realm에서 관리되는지 확인합니다. 관리 객체는 기본 Realm 파일의 데이터를 감싸는 래퍼에 불과합니다. Looper 스레드에서는 관리 객체가 실시간으로 업데이트되어 항상 최신 데이터를 가리킵니다. addChangeListener(RealmModel, RealmChangeListener) 를 사용하여 변경 사항이 발생하면 알림을 받을 수 있도록 변경 리스너를 등록할 수 있습니다. 관리되는 객체는 스레드에 한정되어 있으므로 해당 객체를 만든 스레드 이외의 스레드에서 액세스할 수 없습니다. 이 메서드가 Realm.copyToRealm(RealmModel, ImportFlag...) 를 사용하여 unmanaged 객체에서 managed 객체를 만들 수 있습니다. 관리되지 않는 객체는 managed 객체에서 Realm.copyFromRealm(RealmModel) 을 사용하여 만들 수 있습니다. 반환
|
public boolean isManaged () |
---|
이 객체 가 Realm 에서 managed 되는지 확인합니다. managed 객체 는 기본 Realm 파일 의 데이터를 감싸는 래퍼일 뿐입니다. Looper 스레드에서는 managed 객체 가 실시간으로 업데이트되어 항상 최신 데이터를 가리킵니다. 변경이 발생하면 알림을 받을 수 있도록 addChangeListener(RealmChangeListener) 를 사용하여 변경 리스너를 등록할 수 있습니다. 관리되는 객체는 스레드에 한정되어 있으므로 해당 객체를 만든 스레드 이외의 스레드에서 액세스할 수 없습니다. 이 메서드가 Realm.copyToRealm(RealmModel, ImportFlag...) 를 사용하여 unmanaged 객체에서 managed 객체를 만들 수 있습니다. 관리되지 않는 객체는 managed 객체에서 Realm.copyFromRealm(RealmModel) 을 사용하여 만들 수 있습니다. 반환
|
isValid
RealmObject가 여전히 사용 가능한지 확인합니다, 즉 RealmObject가 삭제되지 않았거나 io.realm.Realm 이 닫히지 않았는지 확인합니다. 관리되지 않는 객체에 대해서는 항상 매개변수
반환
|
public final boolean isValid () | |||
---|---|---|---|
RealmObject가 여전히 사용 가능한지 확인합니다, 즉 RealmObject가 삭제되지 않았거나 io.realm.Realm 이 닫히지 않았는지 확인합니다. 관리되지 않는 객체에 대해서는 항상 이는 관찰 시
반환
|
로드
비동기 쿼리를 차단합니다. 이렇게 하면 등록된 리스너도 모두 trigger됩니다.참고: 관리되지 않는 객체(Realm 외부에서 생성됨)에 대해 호출하면 매개변수
반환
|
public final boolean load () |
---|
비동기 쿼리를 차단합니다. 이렇게 하면 등록된 리스너도 모두 trigger됩니다.참고: 관리되지 않는 객체(Realm 외부에서 생성됨)에 대해 호출하면 반환
|
모든 변경 리스너 제거
지정된 RealmObject에서 등록된 모든 리스너를 제거합니다. 매개변수
스로우
|
public final void removeAllChangeListeners () |
---|
등록된 모든 리스너를 제거합니다. |
removeChangeListener
지정된 RealmObject에 이전에 등록된 리스너를 제거합니다. 매개변수
스로우
|
지정된 RealmObject에 이전에 등록된 리스너를 제거합니다. 매개변수
스로우
|
이전에 등록된 리스너를 제거합니다. 매개변수
스로우 |
이전에 등록된 리스너를 제거합니다. 매개변수
스로우 |