Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/ /
Atlas Device SDK
/ / /

클래스 RealmResults

java.lang.Object
io.realm.OrderedRealmCollectionImpl
io.realm.RealmResults

이 클래스는 주어진 Realm에 대한 RealmQuery 의 모든 일치 항목을 보유합니다. 객체는 Realm에서 RealmResults 목록으로 복사되지 않고 대신 RealmResult에서 참고될 뿐입니다. 이렇게 하면 메모리가 절약되고 속도가 빨라집니다.

RealmResults는 라이브 뷰이므로 이벤트 루프 스레드에 있는 경우 트랜잭션이 커밋된 후 쿼리 결과를 자동으로 업데이트합니다. 이벤트 루프가 아닌 스레드에서는 결과를 업데이트하기 위해 Realm.refresh() 를 호출해야 합니다.

RealmResults 목록에서 RealmObjects 업데이트는 트랜잭션 내에서 수행해야 하며 수정된 객체는 트랜잭션이 커밋되는 동안 Realm 파일에 유지됩니다.

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

RealmResults는 객체가 없는 경우를 제외하고는 절대 null 이(가) 되지 않습니다. 항상 RealmResults.size() 메서드를 사용하여 RealmResults가 비어 있는지 확인합니다.

RealmResults가 RealmList.where() 를 통해 RealmList에 빌드되는 경우 , 소스 RealmList가 삭제되면 비어 있게 됩니다.

RealmResultsInteger.MAX_VALUE 보다 더 많은 요소를 포함할 수 있습니다. 이 경우 처음 Integer.MAX_VALUE 요소에만 액세스할 수 있습니다.

수정자 및 유형
메서드 및 설명

public void

public void

RealmResults에 변경 리스너를 추가합니다.

public <any>

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

public <any>

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

RealmQuery 의 일치 항목에 대한 JSON 표현을 반환합니다.

공개 부울

공개 부울

결과가 아직 로드되지 않은 경우 false 를 반환하고, 로드된 경우 true 을 반환합니다.

공개 부울

load ()

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

public void

모든 사용자 정의 변경 수신기를 제거합니다.

public void

public void

지정된 변경 리스너를 제거합니다.

public void

String fieldName,
byte[] value
)

collection의 모든 객체에서 지정된 필드의 이진 값을 설정합니다.

public void

String fieldName,
boolean value
)

collection의 모든 객체에서 지정된 필드의 boolean 값을 설정합니다.

public void

String fieldName,
byte value
)

collection의 모든 객체에서 지정된 필드의 byte 값을 설정합니다.

public void

String fieldName,
Date value
)

collection의 모든 객체에서 지정된 필드의 Date 값을 설정합니다.

public void

String fieldName,
Decimal128 value
)

collection의 모든 객체에서 지정된 필드의 Decimal128 값을 설정합니다.

public void

String fieldName,
double value
)

collection의 모든 객체에서 지정된 필드의 double 값을 설정합니다.

public void

String fieldName,
float value
)

collection의 모든 객체에서 지정된 필드의 float 값을 설정합니다.

public void

String fieldName,
int value
)

collection의 모든 객체에서 지정된 필드의 int 값을 설정합니다.

public void

setList <T >(
)

이 collection에 있는 모든 객체의 지정된 필드에 있는 RealmList를 대체합니다.

public void

String fieldName,
long value
)

collection의 모든 객체에서 지정된 필드의 long 값을 설정합니다.

public void

String fieldName
)

collection의 모든 객체에서 지정된 필드에 대해 값을 null 로 설정합니다.

public void

String fieldName,
)

collection에 있는 모든 객체에서 지정된 필드에 있는 다른 객체에 대한 참고를 설정합니다.

public void

String fieldName,
ObjectId value
)

collection의 모든 객체에서 지정된 필드의 ObjectId 값을 설정합니다.

public void

String fieldName,
short value
)

collection의 모든 객체에서 지정된 필드의 short 값을 설정합니다.

public void

String fieldName,
String value
)

collection의 모든 객체에서 지정된 필드의 String 값을 설정합니다.

public void

String fieldName,
UUID value
)

collection의 모든 객체에서 지정된 필드의 UUID 값을 설정합니다.

public void

String fieldName,
Object value
)

쿼리 결과 내의 모든 객체에서 fieldName 로 지정된 필드를 업데이트합니다.

String fieldName1,
Sort sortOrder1,
String fieldName2,
Sort sortOrder2
)

제공된 필드와 정렬 순서에 따라 collection을 정렬합니다.

공개 RealmQuery

이 collection에서 특정 objects를 쿼리하는 데 사용할 수 있는 RealmQuery 를 반환합니다.

  • 클래스 java.lang.Object에서 getClasshashCodeequalsclonetoStringnotifynotifyAllwaitwait상속된wait 메서드:,,,,,,,,,, finalize

  • 클래스 java.util.AbstractCollection에서 상속된iterator sizeisEmptycontains메서드:,,,,,,,,,, toArray toArrayaddremovecontainsAlladdAllremoveAll , retainAll , clear , toString

  • 클래스 java.util.AbstractList에서 addgetset상속된add 메서드:,,,,,,,,,, remove indexOflastIndexOfclearaddAlliteratorlistIterator , listIterator , subList , equals , hashCode , removeRange

  • io.realm.OrderedRealmCollectionImp 클래스에서 상속된 메서드: isValid , isManaged , contains , get , first , first , last , last , deleteFromRealm , deleteAllFromRealm , iterator , listIterator , listIterator , sort , sort , sort , sort , size , min , minDate , max , maxDate , sum , average , remove , remove , removeAll , set , retainAll , deleteLastFromRealm , deleteFirstFromRealm , clear , add , add , addAll , addAll , createSnapshot , getRealm , getCollectionOperator

RealmResults에 변경 리스너를 추가합니다.

변경 리스너를 등록해도 기본 RealmResults가 가비지 수집되는 것을 방지할 수는 없습니다. RealmResults가 가비지 컬렉션되면 변경 리스너 트리거가 중지됩니다. 이를 방지하려면 클래스 변수와 같이 적절한 길이로 강력한 참고를 유지하세요.

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

매개변수

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

스로우

RealmResults에 변경 리스너를 추가합니다.

변경 리스너를 등록해도 기본 RealmResults가 가비지 수집되는 것을 방지할 수는 없습니다. RealmResults가 가비지 컬렉션되면 변경 리스너 트리거가 중지됩니다. 이를 방지하려면 클래스 변수와 같이 적절한 길이로 강력한 참고를 유지하세요.

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

매개변수

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

스로우

public <any> asChangesetObservable ()

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

RealmResults가 업데이트될 때마다 RealmResults가 계속 방출되며 onComplete 는 절대 호출되지 않습니다.

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

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

realm.where(Foo.class).findAllAsync().asChangesetObservable()
.observeOn(Schedulers.computation())
.map((rxResults, changes) -> doExpensiveWork(rxResults, changes))
.observeOn(AndroidSchedulers.mainThread())
.subscribe( ... );

반환

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

스로우

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

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

public <any> asFlowable ()

이 RealmResults의 변경 사항을 모니터링하는 Rx Flowable을 반환합니다. 구독 시 현재 RealmResults를 내보냅니다. RealmResults가 업데이트될 때마다 RealmResults가 계속 방출되며 onComplete 는 절대 호출되지 않습니다.

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

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

realm.where(Foo.class).findAllAsync().asFlowable()
.observeOn(Schedulers.computation())
.map(rxResults -> doExpensiveWork(rxResults))
.observeOn(AndroidSchedulers.mainThread())
.subscribe( ... );

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

realm.where(Foo.class).findAllAsync().asFlowable()
.filter(results -> results.isLoaded())
.first()
.subscribe( ... ) // You only get the results once

반환

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

스로우

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

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

public String asJSON ()

RealmQuery 의 일치 항목에 대한 JSON 표현을 반환합니다. 주기는 행 인덱스로 반환됩니다. 이 메서드는 데이터를 검사하는 데 사용되는 도우미 메서드이며, 디버깅 목적으로 이 메서드가 큰 문자열을 가져올 경우 OutOfMemory 오류가 발생할 수 있습니다.

반환

결과 RealmQuery 의 항목이 포함된 JSON 배열의 문자열 표현입니다.

public boolean isFrozen ()

public boolean isLoaded ()

결과가 아직 로드되지 않은 경우 false 를 반환하고, 로드된 경우 true 을 반환합니다.

반환

true 쿼리가 완료되고 데이터를 사용할 수 있는 경우 false , 쿼리가 여전히 백그라운드에서 실행 중인 경우.

public boolean load ()

비동기 쿼리를 차단합니다. 이렇게 하면 query가 완료되면 등록된 모든 RealmChangeListener 도 trigger됩니다.

반환

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

모든 사용자 정의 변경 수신기를 제거합니다.

스로우

지정된 변경 리스너를 제거합니다.

매개변수

  • listener - 제거할 변경 리스너입니다.

스로우

지정된 변경 리스너를 제거합니다.

매개변수

  • listener - 제거할 변경 리스너입니다.

스로우

public void setBlob (
String fieldName,
byte[] value
)

collection의 모든 객체에서 지정된 필드의 이진 값을 설정합니다.

매개변수

  • fieldName - 업데이트할 필드의 이름입니다.

  • value - 필드의 새 값입니다.

스로우

  • IllegalArgumentException - 필드 이름이 존재하지 않거나, 기본 키 속성 이거나 바이너리 필드 아닌 경우.

public void setBoolean (
String fieldName,
boolean value
)

collection의 모든 객체에서 지정된 필드의 boolean 값을 설정합니다.

매개변수

  • fieldName - 업데이트할 필드의 이름입니다.

  • value - 필드의 새 값입니다.

스로우

  • IllegalArgumentException - 필드 이름이 존재하지 않거나, 기본 키 속성 이거나 부울 필드 아닌 경우

public void setByte (
String fieldName,
byte value
)

collection의 모든 객체에서 지정된 필드의 byte 값을 설정합니다.

매개변수

  • fieldName - 업데이트할 필드의 이름입니다.

  • value - 필드의 새 값입니다.

스로우

  • IllegalArgumentException - 필드 이름이 존재하지 않거나, 기본 키 속성 이거나 바이트 필드 아닌 경우

public void setDate (
String fieldName,
Date value
)

collection의 모든 객체에서 지정된 필드의 Date 값을 설정합니다.

매개변수

  • fieldName - 업데이트할 필드의 이름입니다.

  • value - 필드의 새 값입니다.

스로우

  • IllegalArgumentException - 필드 이름이 존재하지 않거나, 기본 키 속성 이거나 필드 아닌 Date 경우.

public void setDecimal128 (
String fieldName,
Decimal128 value
)

collection의 모든 객체에서 지정된 필드의 Decimal128 값을 설정합니다.

매개변수

  • fieldName - 업데이트할 필드의 이름입니다.

  • value - 필드의 새 값입니다.

스로우

  • IllegalArgumentException - 필드 이름이 존재하지 않거나, 기본 키 속성 이거나 필드 아닌 Decimal128 경우.

public void setDouble (
String fieldName,
double value
)

collection의 모든 객체에서 지정된 필드의 double 값을 설정합니다.

매개변수

  • fieldName - 업데이트할 필드의 이름입니다.

  • value - 필드의 새 값입니다.

스로우

public void setFloat (
String fieldName,
float value
)

collection의 모든 객체에서 지정된 필드의 float 값을 설정합니다.

매개변수

  • fieldName - 업데이트할 필드의 이름입니다.

  • value - 필드의 새 값입니다.

스로우

public void setInt (
String fieldName,
int value
)

collection의 모든 객체에서 지정된 필드의 int 값을 설정합니다.

매개변수

  • fieldName - 업데이트할 필드의 이름입니다.

  • value - 필드의 새 값입니다.

스로우

public void setList <T >(
)

이 collection에 있는 모든 객체의 지정된 필드에 있는 RealmList를 대체합니다.

매개변수

  • fieldName - 업데이트할 필드의 이름입니다.

  • list - 필드의 새 값입니다.

스로우

  • IllegalArgumentException - 필드 이름이 존재하지 않거나, RealmList 필드 아닌 경우, 목록의 객체가 managed 되지 않거나 목록의 객체 유형이 잘못된 경우입니다.

public void setLong (
String fieldName,
long value
)

collection의 모든 객체에서 지정된 필드의 long 값을 설정합니다.

매개변수

  • fieldName - 업데이트할 필드의 이름입니다.

  • value - 필드의 새 값입니다.

스로우

  • IllegalArgumentException - 필드 이름이 존재하지 않거나, 기본 키 속성 이거나 긴 필드 아닌 경우

public void setNull (
String fieldName
)

collection의 모든 객체에서 지정된 필드에 대해 값을 null 로 설정합니다.

매개변수

  • fieldName - 업데이트할 필드의 이름입니다.

스로우

  • IllegalArgumentException - 필드 이름이 존재하지 않거나 기본 키 속성 인 경우

  • 불법적인 상태예외 - 필드 값을 보유할 수 없는 경우입니다.null

public void setObject (
String fieldName,
)

collection에 있는 모든 객체에서 지정된 필드에 있는 다른 객체에 대한 참고를 설정합니다.

매개변수

  • fieldName - 업데이트할 필드의 이름입니다.

  • value - 이 필드에서 참고하는 새 객체입니다.

스로우

  • IllegalArgumentException - 필드 이름이 존재하지 않거나, 기본 키 속성 이거나 객체 참조 필드 아닌 경우

public void setObjectId (
String fieldName,
ObjectId value
)

collection의 모든 객체에서 지정된 필드의 ObjectId 값을 설정합니다.

매개변수

  • fieldName - 업데이트할 필드의 이름입니다.

  • value - 필드의 새 값입니다.

스로우

  • IllegalArgumentException - 필드 이름이 존재하지 않거나, 기본 키 속성 이거나 필드 아닌 ObjectId 경우.

public void setShort (
String fieldName,
short value
)

collection의 모든 객체에서 지정된 필드의 short 값을 설정합니다.

매개변수

  • fieldName - 업데이트할 필드의 이름입니다.

  • value - 필드의 새 값입니다.

스로우

  • IllegalArgumentException - 필드 이름이 존재하지 않거나, 기본 키 속성 이거나 짧은 필드 아닌 경우

public void setString (
String fieldName,
String value
)

collection의 모든 객체에서 지정된 필드의 String 값을 설정합니다.

매개변수

  • fieldName - 업데이트할 필드의 이름입니다.

  • value - 필드의 새 값입니다.

스로우

  • IllegalArgumentException - 필드 이름이 존재하지 않거나, 기본 키 속성 이거나 문자열 필드 아닌 경우

public void setUUID (
String fieldName,
UUID value
)

collection의 모든 객체에서 지정된 필드의 UUID 값을 설정합니다.

매개변수

  • fieldName - 업데이트할 필드의 이름입니다.

  • value - 필드의 새 값입니다.

스로우

  • IllegalArgumentException - 필드 이름이 존재하지 않거나, 기본 키 속성 이거나 필드 아닌 UUID 경우.

public void setValue (
String fieldName,
Object value
)

쿼리 결과 내의 모든 객체에서 fieldName 로 지정된 필드를 업데이트합니다.

이 메서드는 String 으)로 지정된 숫자와 부울을 적절한 유형으로 자동 변환하려고 시도합니다. 예를 들어 필드 유형이 RealmFieldType.INTEGER 인 경우 "10"10 로 변환됩니다.

setInt(string, int) 와 같은 형식화된 세터를 사용하면 이 메서드를 사용하는 것보다 빠릅니다.

매개변수

  • fieldName - 업데이트할 필드

  • value - 업데이트할 값입니다.

스로우

  • llegalArgumentException - 필드 찾을 수 없거나, 업데이트할 수 없거나, 인수가 필드 유형과 일치하지 않거나, 기본 필드 유형과 일치하도록 변환할 수 없는 경우.

String fieldName1,
Sort sortOrder1,
String fieldName2,
Sort sortOrder2
)

제공된 필드와 정렬 순서에 따라 collection을 정렬합니다.

반환

새로 정렬된 RealmResults 가 생성되어 반환됩니다. 원본 collection은 변경되지 않은 상태로 유지됩니다.

재정의

sort OrderedRealmCollectionImp클래스에서

public RealmQuery where ()

이 collection에서 특정 objects를 쿼리하는 데 사용할 수 있는 RealmQuery 를 반환합니다.

반환

RealmQuery 객체

돌아가기

RealmQuery

이 페이지의 내용