Sprache

IInstantSource Schnittstelle

Definition

Bietet Zugriff auf den aktuellen Sofortzugriff.

[Android.Runtime.Register("java/time/InstantSource", "", "Java.Time.IInstantSourceInvoker", ApiSince=34)]
public interface IInstantSource : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("java/time/InstantSource", "", "Java.Time.IInstantSourceInvoker", ApiSince=34)>]
type IInstantSource = interface
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
Abgeleitet
Attribute
Implementiert

Hinweise

Bietet Zugriff auf den aktuellen Sofortzugriff.

Instanzen dieser Schnittstelle werden verwendet, um auf eine austauschbare Darstellung des aktuellen Instant zuzugreifen. Beispielsweise können InstantSource anstelle von System#currentTimeMillis()verwendet werden.

Der Hauptzweck dieser Abstraktion besteht darin, alternative Sofortquellen bei Bedarf eingesteckt zu lassen. Anwendungen verwenden ein Objekt, um die aktuelle Uhrzeit anstelle einer statischen Methode abzurufen. Dies kann das Testen vereinfachen.

Daher garantiert diese Schnittstelle nicht, dass das Ergebnis tatsächlich den aktuellen Moment in der Zeitlinie darstellt. Stattdessen kann die Anwendung eine kontrollierte Ansicht für den aktuellen Moment bereitstellen.

Bewährte Methode für Anwendungen besteht darin, eine InstantSource Beliebige Methode zu übergeben, die den aktuellen Sofortigen erfordert. Ein Abhängigkeitsinjektionsframework ist eine Möglichkeit, dies zu erreichen:

public class MyBean {
               private InstantSource source;  // dependency inject
               ...
               public void process(Instant endInstant) {
                 if (source.instant().isAfter(endInstant) {
                   ...
                 }
               }
             }

Dieser Ansatz ermöglicht eine alternative Quelle, z #fixed(Instant) fixed . B. während des Tests oder #offset(InstantSource, Duration) offset die Verwendung.

Die system Factorymethode stellt eine Quelle basierend auf der besten verfügbaren Systemuhr bereit. Dies kann eine Uhr mit höherer Auflösung verwenden System#currentTimeMillis(), wenn eine verfügbar ist.

Hinzugefügt in 17.

Java Dokumentation für java.time.InstantSource.

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Eigenschaften

Name Beschreibung
Handle

Ruft den JNI-Wert des zugrunde liegenden Android-Objekts ab.

(Geerbt von IJavaObject)
JniIdentityHashCode

Gibt den Wert java.lang.System.identityHashCode() für die umbrochene Instanz zurück.

(Geerbt von IJavaPeerable)
JniManagedPeerState

Status des verwalteten Peers.

(Geerbt von IJavaPeerable)
JniObjectReferenceControlBlock

Bietet Zugriff auf den aktuellen Sofortzugriff.

(Geerbt von IJavaPeerable)
JniPeerMembers

Mitgliedszugriff und Aufrufunterstützung.

(Geerbt von IJavaPeerable)
PeerReference

Gibt eine JniObjectReference der umbrochenen Java Objektinstanz zurück.

(Geerbt von IJavaPeerable)

Methoden

Name Beschreibung
Disposed()

Wird aufgerufen, wenn die Instanz verworfen wurde.

(Geerbt von IJavaPeerable)
DisposeUnlessReferenced()

Wenn keine offenen Verweise auf diese Instanz vorhanden sind, wird nichts aufgerufen Dispose(). Andernfalls wird nichts ausgeführt.

(Geerbt von IJavaPeerable)
Finalized()

Wird aufgerufen, wenn die Instanz abgeschlossen wurde.

(Geerbt von IJavaPeerable)
Fixed(Instant)

Ruft eine Quelle ab, die immer denselben Sofortigen zurückgibt.

Instant()

Ruft den aktuellen Instant der Quelle ab.

Millis()

Ruft den aktuellen Millisekunden-Instant der Quelle ab.

Offset(IInstantSource, Duration)

Ruft eine Quelle ab, die Instants aus der angegebenen Quelle zurückgibt, wobei die angegebene Dauer hinzugefügt wurde.

SetJniIdentityHashCode(Int32)

Legen Sie den von JniIdentityHashCode.

(Geerbt von IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Bietet Zugriff auf den aktuellen Sofortzugriff.

(Geerbt von IJavaPeerable)
SetPeerReference(JniObjectReference)

Legen Sie den von PeerReference.

(Geerbt von IJavaPeerable)
System()

Ruft eine Quelle ab, die den aktuellen Moment mithilfe der besten verfügbaren Systemuhr zurückgibt.

Tick(IInstantSource, Duration)

Ruft eine Quelle ab, die Instants aus der angegebenen Quelle zurückgibt, die auf das nächste Vorkommen der angegebenen Dauer abgeschnitten wird.

UnregisterFromRuntime()

Heben Sie die Registrierung dieser Instanz auf, damit die Laufzeit sie nicht aus zukünftigen Java.Interop.JniRuntime+JniValueManager.PeekValue Aufrufen zurückgibt.

(Geerbt von IJavaPeerable)
WithZone(ZoneId)

Gibt eine Uhr mit der angegebenen Zeitzone zurück.

Erweiterungsmethoden

Name Beschreibung
GetJniTypeName(IJavaPeerable)

Ruft den JNI-Namen des Typs der Instanz selfab.

JavaAs<TResult>(IJavaPeerable)

Versuchen Sie, die Eingabe selfzu TResult erzwingen, und überprüfen Sie, ob die Koersion auf der Java Seite gültig ist.

JavaCast<TResult>(IJavaObject)

Führt eine android-laufzeitgecheckte Typkonvertierung aus.

JavaCast<TResult>(IJavaObject)

Bietet Zugriff auf den aktuellen Sofortzugriff.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Versuchen Sie, die Eingabe selfzu TResult erzwingen, und überprüfen Sie, ob die Koersion auf der Java Seite gültig ist.

Gilt für: