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

클래스 RealmObject

이 페이지의 내용

  • io.realm
  • 생성자
  • 메서드 요약
  • 상속된 메서드
  • 생성자 세부 정보
  • 메서드 세부 정보
  • addChangeListener
  • asChangesetObservable
  • asFlowable
  • deleteFromRealm
  • 동결
  • getRealm
  • IsFrozen
  • isLoaded
  • isManaged
  • isValid
  • 로드
  • 모든 변경 리스너 제거
  • removeChangeListener
java.lang.Object
io.realm.RealmObject

구현된 인터페이스:

  • io.realm.RealmModel

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 , intlong 유형은 Realm 내에 저장할 때 long 에 매핑됩니다.

RealmObject에 적용되는 유일한 제한 사항은 필드가 최종 필드나 변동 필드를 허용하지 않는다는 것입니다. 공개 필드뿐만 아니라 모든 메서드가 허용됩니다. 사용자 지정 생성자를 제공할 때는 인수가 없는 공용 생성자를 선언해야 합니다.

io.realm.annotations.Igore 주석이 달린 필드에는 이러한 제한이 없으며 getter나 setter가 필요하지 않습니다.

Realm은 io.realm.annotations.Index 주석이 달린 필드에 대한 인덱스를 생성합니다. 이렇게 하면 쿼리 속도가 빨라지지만 삽입 및 업데이트에는 부정적인 영향을 미칩니다.

RealmObject는 서로 다른 스레드 간에 전달할 수 없습니다.

다음도 참조하세요.

생성자 및 설명
수정자 및 유형
메서드 및 설명
public static void

값 필드 또는 참고 RealmObject 필드가 변경되거나 RealmList 필드 자체가 변경되면 트리거되는 변경 리스너를 RealmObject에 추가합니다.

public static void

RealmObject에 변경 리스너를 추가하여 변경 사항에 대한 자세한 정보를 가져옵니다.

public final void

값 필드 또는 참고 RealmObject 필드가 변경되거나 RealmList 필드 자체가 변경되면 트리거되는 변경 리스너를 이 RealmObject에 추가합니다.

public final void

이 RealmObject에 변경 리스너를 추가하여 변경 사항에 대한 자세한 정보를 가져옵니다.

public static <any>
E object
)

이 RealmObject의 변경 사항을 모니터링하는 Rx Observable을 반환합니다.

public final <any>

이 RealmObject의 변경 사항을 모니터링하는 Rx Observable을 반환합니다.

public static <any>
E object
)

이 RealmObject의 변경 사항을 모니터링하는 RxJava Flowable을 반환합니다.

public final <any>
asFlowable <E >()

이 RealmObject의 변경 사항을 모니터링하는 RxJava Flowable을 반환합니다.

public static void
E object
)

현재 연결된 Realm에서 객체를 삭제합니다.

public final void

현재 연결된 Realm에서 객체를 삭제합니다.

public static E
freeze <E >(
E object
)

이 객체의 동결된 스냅샷을 반환합니다.

public final E
freeze <E >()

이 객체의 동결된 스냅샷을 반환합니다.

public static Realm

model 가 속한 Realm 인스턴스 를 반환합니다.

public Realm
public static boolean
isFrozen <E >(
E object
)

이 RealmObject가 동결되었는지 여부를 반환합니다.

public final boolean

이 RealmObject가 동결되었는지 여부를 반환합니다.

public static boolean
isLoaded <E >(
E object
)

이 RealmObject를 찾는 데 사용된 쿼리가 완료되었는지 확인합니다.

public final boolean

이 RealmObject를 찾는 데 사용된 쿼리가 완료되었는지 확인합니다.

public static boolean
isManaged <E >(
E object
)

이 객체가 Realm에서 managed 확인합니다.

공개 부울

이 객체가 Realm에서 managed 확인합니다.

public static boolean
isValid <E >(
E object
)

RealmObject가 여전히 사용 가능한지 확인합니다, 즉 RealmObject가 삭제되지 않았거나 io.realm.Realm 이 닫히지 않았는지 확인합니다.

public final boolean

RealmObject가 여전히 사용 가능한지 확인합니다, 즉 RealmObject가 삭제되지 않았거나 io.realm.Realm 이 닫히지 않았는지 확인합니다.

public static boolean
load <E >(
E object
)

비동기 쿼리를 차단합니다.

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

이전에 등록된 리스너를 제거합니다.

public RealmObject ()

public static void addChangeListener <E >(
)

값 필드 또는 참고 RealmObject 필드가 변경되거나 RealmList 필드 자체가 변경되는 경우 트리거되는 변경 리스너를 RealmObject에 추가합니다. 변경 리스너를 등록해도 기본 RealmObject가 가비지 수집되는 것을 방지할 수 없습니다. RealmObject가 가비지 수집되면 변경 리스너 트리거가 중지됩니다. 이를 방지하려면 클래스 변수와 같이 적절한 길이로 강력한 참고를 유지하세요.

public class MyActivity extends Activity {
private Person person; // Strong reference to keep listeners alive
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
person = realm.where(Person.class).findFirst();
person.addChangeListener(new RealmChangeListener<Person>() {
@Override
public void onChange(Person person) {
// React to change
}
});
}
}

매개변수

  • object - 리스너를 추가할 RealmObject입니다.

  • listener - 알림을 받을 변경 리스너입니다.

스로우

  • 불법적인 인수 예외 - 가 object null 또는 관리되지 않는 객체 이거나 변경 리스너가 인 null 경우.

  • 불법적인 상태 예외 - Looper가 아닌 스레드 또는 IntentService 스레드에서 리스너를 추가하려고 하는 경우.

  • 불법적인 상태 예외 - 트랜잭션 내에 리스너를 추가하려고 하는 경우.

public static void addChangeListener <E >(
)

RealmObject에 변경 리스너를 추가하여 변경 사항에 대한 자세한 정보를 가져옵니다. 값 필드 또는 참고 RealmObject 필드가 변경되거나 RealmList 필드 자체가 변경되면 리스너가 트리거됩니다. 변경 리스너를 등록해도 기본 RealmObject가 가비지 수집되는 것을 방지할 수는 없습니다. RealmObject가 가비지 수집되면 변경 리스너 트리거가 중지됩니다. 이를 방지하려면 클래스 변수와 같이 적절한 길이로 강력한 참고를 유지하세요.

public class MyActivity extends Activity {
private Person person; // Strong reference to keep listeners alive
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
person = realm.where(Person.class).findFirst();
person.addChangeListener(new RealmObjectChangeListener<Person>() {
@Override
public void onChange(Person person, ObjectChangeSet changeSet) {
// React to change
}
});
}
}

매개변수

  • object - 리스너를 추가할 RealmObject입니다.

  • listener - 알림을 받을 변경 리스너입니다.

스로우

  • 불법적인 인수 예외 - 가 object null 또는 관리되지 않는 객체 이거나 변경 리스너가 인 null 경우.

  • 불법적인 상태 예외 - Looper가 아닌 스레드 또는 IntentService 스레드에서 리스너를 추가하려고 하는 경우.

  • 불법적인 상태 예외 - 트랜잭션 내에 리스너를 추가하려고 하는 경우.

public final void addChangeListener <E >(
)

값 필드 또는 참고 RealmObject 필드가 변경되거나 RealmList 필드 자체가 변경되는 경우 트리거되는 변경 리스너를 RealmObject에 추가합니다. 변경 리스너를 등록해도 기본 RealmObject가 가비지 수집되는 것을 방지할 수 없습니다. RealmObject가 가비지 수집되면 변경 리스너 트리거가 중지됩니다. 이를 방지하려면 클래스 변수와 같이 적절한 길이로 강력한 참고를 유지하세요.

public class MyActivity extends Activity {
private Person person; // Strong reference to keep listeners alive
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
person = realm.where(Person.class).findFirst();
person.addChangeListener(new RealmChangeListener<Person>() {
@Override
public void onChange(Person person) {
// React to change
}
});
}
}

매개변수

  • listener - 알림을 받을 변경 리스너입니다.

스로우

  • 불법적인 인수 예외 - 변경 리스너가 이거나 객체 가 관리되지 않는 객체 인 경우.null

  • 불법적인 상태 예외 - Looper가 아닌 스레드 또는 IntentService 스레드에서 리스너를 추가하려고 하는 경우.

  • 불법적인 상태 예외 - 트랜잭션 내에 리스너를 추가하려고 하는 경우.

이 RealmObject에 변경 리스너를 추가하여 변경 사항에 대한 자세한 정보를 가져옵니다. 값 필드 또는 참고 RealmObject 필드가 변경되거나 RealmList 필드 자체가 변경되면 리스너가 트리거됩니다. 변경 리스너를 등록해도 기본 RealmObject가 가비지 수집되는 것을 방지할 수는 없습니다. RealmObject가 가비지 수집되면 변경 리스너 트리거가 중지됩니다. 이를 방지하려면 클래스 변수와 같이 적절한 길이로 강력한 참고를 유지하세요.

public class MyActivity extends Activity {
private Person person; // Strong reference to keep listeners alive
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
person = realm.where(Person.class).findFirst();
person.addChangeListener(new RealmObjectChangeListener<Person>() {
@Override
public void onChange(Person person, ObjectChangeSet changeSet) {
// React to change
}
});
}
}

매개변수

  • listener - 알림을 받을 변경 리스너입니다.

스로우

  • 불법적인 인수 예외 - 변경 리스너가 이거나 객체 가 관리되지 않는 객체 인 경우.null

  • 불법적인 상태 예외 - Looper가 아닌 스레드 또는 IntentService 스레드에서 리스너를 추가하려고 하는 경우.

  • 불법적인 상태 예외 - 트랜잭션 내에 리스너를 추가하려고 하는 경우.

public static <any> asChangesetObservable <E >(
E object
)

이 RealmObject의 변경 사항을 모니터링하는 Rx Observable을 반환합니다. 구독 시 현재 RealmObject를 방출합니다. RealmObject가 업데이트될 때마다 RealmObject와 ObjectChangeSet 로 구성된 쌍이 전송됩니다. RealmObject가 처음 방출될 때 변경 세트는 null 가 됩니다.

RealmObject는 업데이트될 때마다 계속 방출되며 onComplete 은(는) 호출되지 않습니다.

Realm Observable에서 방출된 항목은 동결됩니다(freeze() 참조) . 즉, 변경할 수 없으며 모든 스레드에서 읽을 수 있습니다.

Realm Observable은 항상 라이브 Realm을 보유한 스레드에서 항목을 방출합니다. 즉, 추가 처리를 수행해야 하는 경우 계산 스케줄러에서 값을 관찰하는 것이 좋습니다.

obj.asChangesetObservable()
.observeOn(Schedulers.computation())
.map((rxObj, changes) -> doExpensiveWork(rxObj, changeså))
.observeOn(AndroidSchedulers.mainThread())
.subscribe( ... );

매개변수

  • object - 관찰 중인 RealmObject 클래스입니다. 이 클래스 또는 해당 클래스의 상위 유형이어야 합니다.

반환

onNext 만 호출하는 RxJava Observable입니다. 절대 onComplete 또는 OnError 를 호출하지 않습니다.

스로우

  • UnsupportedOperationException - 필요한 RxJava 프레임워크가 클래스 경로에 없거나 해당 Realm 인스턴스가 RxJava를 지원하지 않는 경우.

  • 불법적인 상태 예외 - Realm이 Looper 스레드에서 열리지 않은 경우.

다음도 참조하세요.

public final <any> asChangesetObservable <E >()

이 RealmObject의 변경 사항을 모니터링하는 Rx Observable을 반환합니다. 구독 시 현재 RealmObject를 방출합니다. RealmObject가 업데이트될 때마다 RealmObject와 ObjectChangeSet 로 구성된 쌍이 전송됩니다. RealmObject가 처음 방출될 때 변경 세트는 null 가 됩니다.

RealmObject는 업데이트될 때마다 계속 방출되며 onComplete 은(는) 호출되지 않습니다.

Realm Observable에서 방출된 항목은 동결됩니다(freeze() 참조) . 즉, 변경할 수 없으며 모든 스레드에서 읽을 수 있습니다.

Realm Observable은 항상 라이브 Realm을 보유한 스레드에서 항목을 방출합니다. 즉, 추가 처리를 수행해야 하는 경우 계산 스케줄러에서 값을 관찰하는 것이 좋습니다.

obj.asChangesetObservable()
.observeOn(Schedulers.computation())
.map((rxObj, changes) -> doExpensiveWork(rxObj, changeså))
.observeOn(AndroidSchedulers.mainThread())
.subscribe( ... );

반환

onNext 만 호출하는 RxJava Observable입니다. 절대 onComplete 또는 OnError 를 호출하지 않습니다.

스로우

  • UnsupportedOperationException - 필요한 RxJava 프레임워크가 클래스 경로에 없거나 해당 Realm 인스턴스가 RxJava를 지원하지 않는 경우.

  • 불법적인 상태 예외 - Realm이 Looper 스레드에서 열리지 않은 경우.

다음도 참조하세요.

public static <any> asFlowable <E >(
E object
)

이 RealmObject의 변경 사항을 모니터링하는 RxJava Flowable을 반환합니다. 구독 시 현재 객체를 방출합니다. RealmObject가 업데이트될 때마다 객체 업데이트가 계속 내보내지며 onComplete 은(는) 호출되지 않습니다.

RealmObject 옵저버블을 연결할 때 obj.<MyRealmObjectClass>asFlowable() 을(를) 사용하여 유형 정보를 전달하지 않으면 다음 옵저버블의 유형이 RealmObject 이(가) 됩니다.

Realm Flowables에서 방출된 항목은 동결됩니다(freeze() 참조) . 즉, 변경할 수 없으며 모든 스레드에서 읽을 수 있습니다.

Realm Flowable은 항상 라이브 Realm을 보유한 스레드에서 항목을 방출합니다. 즉, 추가 처리를 수행해야 하는 경우 계산 스케줄러에서 값을 관찰하는 것이 좋습니다.

obj.asFlowable()
.observeOn(Schedulers.computation())
.map((rxObj) -> doExpensiveWork(rxObj))
.observeOn(AndroidSchedulers.mainThread())
.subscribe( ... );

asFlowable() 에서 항목 방출을 중지하려면 first() 연산자를 사용하여 첫 번째 항목만 방출하도록 RxJava에 지시할 수 있습니다.

obj.asFlowable()
.filter(obj -> obj.isLoaded())
.first()
.subscribe( ... ) // You only get the object once

매개변수

  • object - 관찰 중인 RealmObject 클래스입니다. 이 클래스 또는 해당 클래스의 상위 유형이어야 합니다.

반환

onNext 만 호출하는 RxJava Observable입니다. 절대 onComplete 또는 OnError 를 호출하지 않습니다.

스로우

  • UnsupportedOperationException - 필요한 RxJava 프레임워크가 클래스 경로에 없는 경우.

  • 불법적인 상태 예외 - Realm이 Looper 스레드에서 열리지 않은 경우.

다음도 참조하세요.

public final <any> asFlowable <E >()

이 RealmObject의 변경 사항을 모니터링하는 RxJava Flowable을 반환합니다. 구독 시 현재 객체를 방출합니다. 객체 업데이트는 RealmObject가 업데이트될 때마다 계속 내보내지며 onComplete 은(는) 호출되지 않습니다.

RealmObject 플로우어블을 연결할 때 obj.<MyRealmObjectClass>asFlowable() 을 사용하여 유형 정보를 전달하지 않으면 다음 옵저버블의 유형은 RealmObject 이(가) 됩니다.

Realm Flowables에서 방출된 항목은 동결됩니다(freeze() 참조) . 즉, 변경할 수 없으며 모든 스레드에서 읽을 수 있습니다.

Realm Flowable은 항상 라이브 Realm을 보유한 스레드에서 항목을 방출합니다. 즉, 추가 처리를 수행해야 하는 경우 계산 스케줄러에서 값을 관찰하는 것이 좋습니다.

obj.asFlowable()
.observeOn(Schedulers.computation())
.map((rxObj) -> doExpensiveWork(rxObj))
.observeOn(AndroidSchedulers.mainThread())
.subscribe( ... );

asFlowable() 에서 항목 방출을 중지하려면 first() 연산자를 사용하여 첫 번째 항목만 방출하도록 RxJava에 지시할 수 있습니다.

obj.asFlowable()
.filter(obj -> obj.isLoaded())
.first()
.subscribe( ... ) // You only get the object once

유형 매개변수

  • E - 관찰 중인 RealmObject 클래스입니다. 이 클래스 또는 해당 클래스의 상위 유형이어야 합니다.

반환

onNext 만 호출하는 RxJava Observable입니다. 절대 onComplete 또는 OnError 를 호출하지 않습니다.

스로우

  • UnsupportedOperationException - 필요한 RxJava 프레임워크가 클래스 경로에 없거나 해당 Realm 인스턴스가 RxJava를 지원하지 않는 경우.

  • 불법적인 상태 예외 - Realm이 Looper 스레드에서 열리지 않은 경우.

다음도 참조하세요.

public static void deleteFromRealm <E >(
E object
)

현재 연결된 Realm에서 객체를 삭제합니다. 이 메서드가 호출되면 객체는 유효하지 않으며 해당 객체에 대해 수행된 모든 작업(읽기 또는 쓰기)이 실패하고 잘못된 상태가 발생합니다.

스로우

  • 불법적인 상태 예외 - 해당 Realm이 닫혔거나 잘못된 스레드에 있는 경우

다음도 참조하세요.

public final void deleteFromRealm ()

현재 연결된 Realm에서 객체를 삭제합니다. 이 메서드가 호출되면 객체는 유효하지 않으며 해당 객체에 대해 수행된 모든 작업(읽기 또는 쓰기)이 실패하고 불법적인 상태가 발생합니다.

스로우

  • 불법적인 상태 예외 - 해당 Realm이 닫혔거나 잘못된 스레드에 있는 경우

다음도 참조하세요.

public static E freeze <E >(
E object
)

이 객체의 동결된 스냅샷을 반환합니다. 동결된 사본은 불법적인 상태 예외( IllegalStateException )를 발생시키지 않고 모든 스레드에서 읽고 쿼리할 수 있습니다. .

RealmObject를 동결하면 자체 라이프사이클이 있는 동결된 Realm도 생성되지만, 원래 collection을 생성한 라이브 Realm이 완전히 닫힌 경우(즉, (모든 스레드의 모든 인스턴스가 닫힙니다), 동결된 Realm과 객체도 닫힙니다.

동결된 객체는 정상적으로 쿼리할 수 있지만 어떤 방식으로든 이를 변경하려고 하거나 리스너를 등록하려고 하면 IllegalStateException 이 발생합니다. .

참고: 버전이 다른 많은 수의 동결된 객체를 활성 상태로 유지하면 Realm의 파일 크기에 부정적인 영향을 미칠 수 있습니다. 이러한 상황을 방지하려면 RealmConfiguration.Builder.maxNumberOfActiveVersions(long) 을 설정할 수 있습니다.

반환

이 객체의 동결된 복사본입니다.

스로우

  • 불법적인 상태 예외 - 이 메서드가 쓰기 트랜잭션( 쓰기 트랜잭션 (write transaction)) 내부에서 호출된 경우.

public final E freeze <E >()

이 객체의 동결된 스냅샷을 반환합니다. 동결된 사본은 불법적인 상태 예외( IllegalStateException )를 발생시키지 않고 모든 스레드에서 읽고 쿼리할 수 있습니다. .

RealmObject를 동결하면 자체 라이프사이클이 있는 동결된 Realm도 생성되지만, 원래 collection을 생성한 라이브 Realm이 완전히 닫힌 경우(즉, (모든 스레드의 모든 인스턴스가 닫힙니다), 동결된 Realm과 객체도 닫힙니다.

동결된 객체는 정상적으로 쿼리할 수 있지만 어떤 방식으로든 이를 변경하려고 하거나 리스너를 등록하려고 하면 IllegalStateException 이 발생합니다. .

참고: 버전이 다른 많은 수의 동결된 객체를 활성 상태로 유지하면 Realm의 파일 크기에 부정적인 영향을 미칠 수 있습니다. 이러한 상황을 방지하려면 RealmConfiguration.Builder.maxNumberOfActiveVersions(long) 을 설정할 수 있습니다.

반환

이 객체의 동결된 복사본입니다.

스로우

  • 불법적인 상태 예외 - 이 메서드가 쓰기 트랜잭션( 쓰기 트랜잭션 (write transaction)) 내부에서 호출된 경우.

public static Realm getRealm (
)

model 가 속한 Realm 인스턴스 를 반환합니다.

Realm.close() 를 호출 해서는 안 됩니다. 반환된 인스턴스에 대해.

매개변수

반환

model 가 속한 Realm 인스턴스이거나 model 가 관리되지 않는 경우 null 입니다.

스로우

public Realm getRealm ()

RealmObject가 속한 Realm 인스턴스 를 반환합니다.

Realm.close() 를 호출 해서는 안 됩니다. 반환된 인스턴스에 대해.

반환

이 객체가 속한 Realm 인스턴스이거나 이 객체가 관리되지 않는 경우 null 입니다.

스로우

  • 불법적인 상태 예외 - 이 객체 가 DynamicRealmObject 의 인스턴스 이거나 이 객체 가 이미 삭제되었거나 해당 Realm 이 이미 닫힌 경우.

public static boolean isFrozen <E >(
E object
)

이 RealmObject가 동결되었는지 여부를 반환합니다.

반환

true RealmObject가 동결되면 false 을 반환합니다.

다음도 참조하세요.

public final boolean isFrozen ()

이 RealmObject가 동결되었는지 여부를 반환합니다.

반환

true RealmObject가 동결되면 false 을 반환합니다.

다음도 참조하세요.

public static boolean isLoaded <E >(
E object
)

이 RealmObject를 찾는 데 사용된 쿼리 가 완료되었는지 확인합니다.RealmQuery.findFirstAsync() 와 같은 비동기 메서드는 RealmQuery 의 향후 결과를 나타내는 RealmObject 를 반환합니다. java.util.concurrent.Future 이와 관련하여.

isLoaded() 이(가) true 을(를) 반환하면 이 객체 는 쿼리 에서 쿼리 매개변수와 일치하는 객체 를 찾지 못했더라도 쿼리 결과를 나타냅니다. 이 경우 RealmObject 는 'null' 객체 가 됩니다.

"Null" 객체는 null 을 나타냅니다. 접근자가 호출되면 예외가 발생하므로 메서드를 호출하기 전에 isValid() 도 확인하는 것이 중요합니다. 일반적인 패턴은 다음과 같습니다.

Person person = realm.where(Person.class).findFirstAsync();
RealmObject.isLoaded(person); // == false
RealmObject.addChangeListener(person, new RealmChangeListener() {
@Override
public void onChange(Person person) {
RealmObject.isLoaded(person); // always true here
if (RealmObject.isValid(person)) {
// It is safe to access the person.
}
}
});

동기 RealmObject는 정의상 블로킹이므로 이 메서드는 항상 true 을(를) 반환합니다. 이 메서드는 관리되지 않는 객체(Realm 외부에서 생성됨)에 대해 호출하면 true 을(를) 반환합니다.

매개변수

  • object - 확인할 RealmObject입니다.

반환

true 쿼리가 완료되면 false , 쿼리가 진행 중이면 을 반환합니다.

다음도 참조하세요.

public final boolean isLoaded ()

이 RealmObject를 찾는 데 사용된 쿼리 가 완료되었는지 확인합니다.RealmQuery.findFirstAsync() 와 같은 비동기 메서드는 RealmQuery 의 향후 결과를 나타내는 RealmObject 를 반환합니다. java.util.concurrent.Future 이와 관련하여.

isLoaded() 이(가) true 을(를) 반환하면 이 객체 는 쿼리 에서 쿼리 매개변수와 일치하는 객체 를 찾지 못했더라도 쿼리 결과를 나타냅니다. 이 경우 RealmObject 는 'null' 객체 가 됩니다.

"Null" 객체는 null 을 나타냅니다. 접근자가 호출되면 예외가 발생하므로 메서드를 호출하기 전에 isValid() 도 확인하는 것이 중요합니다. 일반적인 패턴은 다음과 같습니다.

Person person = realm.where(Person.class).findFirstAsync();
person.isLoaded(); // == false
person.addChangeListener(new RealmChangeListener() {
@Override
public void onChange(Person person) {
person.isLoaded(); // Always true here
if (person.isValid()) {
// It is safe to access the person.
}
}
});

동기 RealmObject는 정의상 블로킹이므로 이 메서드는 항상 true 을(를) 반환합니다. 이 메서드는 관리되지 않는 객체(Realm 외부에서 생성됨)에 대해 호출하면 true 을(를) 반환합니다.

반환

true 쿼리가 완료되면 false , 쿼리가 진행 중이면 을 반환합니다.

다음도 참조하세요.

public static boolean isManaged <E >(
E object
)

이 객체가 Realm에서 관리되는지 확인합니다. 관리 객체는 기본 Realm 파일의 데이터를 감싸는 래퍼에 불과합니다. Looper 스레드에서는 관리 객체가 실시간으로 업데이트되어 항상 최신 데이터를 가리킵니다. addChangeListener(RealmModel, RealmChangeListener) 를 사용하여 변경 사항이 발생하면 알림을 받을 수 있도록 변경 리스너를 등록할 수 있습니다. 관리되는 객체는 스레드에 한정되어 있으므로 해당 객체를 만든 스레드 이외의 스레드에서 액세스할 수 없습니다.

이 메서드가 false 를 반환하면 객체는 관리되지 않는 객체입니다. 관리되지 않는 객체는 일반적인 Java 객체이므로 스레드 간에 자유롭게 구문 분석할 수 있지만 객체의 데이터는 기본 Realm에 연결되어 있지 않으므로 실시간으로 업데이트되지 않습니다.

Realm.copyToRealm(RealmModel, ImportFlag...) 를 사용하여 unmanaged 객체에서 managed 객체를 만들 수 있습니다. 관리되지 않는 객체는 managed 객체에서 Realm.copyFromRealm(RealmModel) 을 사용하여 만들 수 있습니다.

반환

true 객체가 managed 경우 false (관리되지 않는 경우)

public boolean isManaged ()

이 객체 가 Realm 에서 managed 되는지 확인합니다. managed 객체 는 기본 Realm 파일 의 데이터를 감싸는 래퍼일 뿐입니다. Looper 스레드에서는 managed 객체 가 실시간으로 업데이트되어 항상 최신 데이터를 가리킵니다. 변경이 발생하면 알림을 받을 수 있도록 addChangeListener(RealmChangeListener) 를 사용하여 변경 리스너를 등록할 수 있습니다. 관리되는 객체는 스레드에 한정되어 있으므로 해당 객체를 만든 스레드 이외의 스레드에서 액세스할 수 없습니다.

이 메서드가 false 를 반환하면 객체는 관리되지 않는 객체입니다. 관리되지 않는 객체는 일반적인 Java 객체이므로 스레드 간에 자유롭게 구문 분석할 수 있지만 객체의 데이터는 기본 Realm에 연결되어 있지 않으므로 실시간으로 업데이트되지 않습니다.

Realm.copyToRealm(RealmModel, ImportFlag...) 를 사용하여 unmanaged 객체에서 managed 객체를 만들 수 있습니다. 관리되지 않는 객체는 managed 객체에서 Realm.copyFromRealm(RealmModel) 을 사용하여 만들 수 있습니다.

반환

true 객체가 managed 경우 false (관리되지 않는 경우)

public static boolean isValid <E >(
E object
)

RealmObject가 여전히 사용 가능한지 확인합니다, 즉 RealmObject가 삭제되지 않았거나 io.realm.Realm 이 닫히지 않았는지 확인합니다. 관리되지 않는 객체에 대해서는 항상 true 을(를) 반환합니다.

매개변수

  • object - 유효성을 확인할 RealmObject입니다.

반환

true 객체가 여전히 액세스 가능하거나 관리되지 않는 객체이면 false , 그렇지 않으면 을 반환합니다.

public final boolean isValid ()

RealmObject가 여전히 사용 가능한지 확인합니다, 즉 RealmObject가 삭제되지 않았거나 io.realm.Realm 이 닫히지 않았는지 확인합니다. 관리되지 않는 객체에 대해서는 항상 true 을(를) 반환합니다.

이는 관찰 시 null 상태와 같은 특정 조건의 유효성을 확인하는 데 사용할 수 있습니다.

realm.where(BannerRealm.class).equalTo("type", type).findFirstAsync().asFlowable()
.filter(result.isLoaded() && result.isValid())
.first()

반환

true 객체가 여전히 액세스 가능하거나 관리되지 않는 객체이면 false , 그렇지 않으면 을 반환합니다.

다음도 참조하세요.

public static boolean load <E >(
E object
)

비동기 쿼리를 차단합니다. 이렇게 하면 등록된 리스너도 모두 trigger됩니다.참고: 관리되지 않는 객체(Realm 외부에서 생성됨)에 대해 호출하면 true 을(를) 반환합니다.

매개변수

  • object - RealmObject를 사용하여 강제로 로드합니다.

반환

true 쿼리를 성공적으로 완료했으면 false 을 반환합니다.

public final boolean load ()

비동기 쿼리를 차단합니다. 이렇게 하면 등록된 리스너도 모두 trigger됩니다.참고: 관리되지 않는 객체(Realm 외부에서 생성됨)에 대해 호출하면 true 을(를) 반환합니다.

반환

true 쿼리를 성공적으로 완료했으면 false 을 반환합니다.

public static void removeAllChangeListeners <E >(
E object
)

지정된 RealmObject에서 등록된 모든 리스너를 제거합니다.

매개변수

  • object - 모든 리스너를 제거할 RealmObject입니다.

스로우

public final void removeAllChangeListeners ()

등록된 모든 리스너를 제거합니다.
public static void removeChangeListener <E >(
)

지정된 RealmObject에 이전에 등록된 리스너를 제거합니다.

매개변수

  • object - 리스너를 제거할 RealmObject입니다.

  • listener - 제거할 인스턴스입니다.

스로우

public static void removeChangeListener <E >(
)

지정된 RealmObject에 이전에 등록된 리스너를 제거합니다.

매개변수

  • object - 리스너를 제거할 RealmObject입니다.

  • listener - 제거할 인스턴스입니다.

스로우

이전에 등록된 리스너를 제거합니다.

매개변수

  • listener - 제거할 인스턴스입니다.

스로우

이전에 등록된 리스너를 제거합니다.

매개변수

  • listener - 제거할 인스턴스입니다.

스로우

돌아가기

RealmModel